Python Django查看问题外键
我遇到了相关模型类的麻烦。 我有一个这样的模型:Python Django查看问题外键,python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,我遇到了相关模型类的麻烦。 我有一个这样的模型: class Cine(models.Model): nombre = models.CharField(max_length=150) ciudad = models.ForeignKey(Ciudad, db_column='ciudad') slug = models.SlugField(unique=True, blank=True) ... class Funcion(models.Model):
class Cine(models.Model):
nombre = models.CharField(max_length=150)
ciudad = models.ForeignKey(Ciudad, db_column='ciudad')
slug = models.SlugField(unique=True, blank=True)
...
class Funcion(models.Model):
idpelicula = models.ForeignKey(Pelicula, db_column='idpelicula')
idcine = models.ForeignKey(Cine, db_column='idcine', null=True)
hora = models.TimeField(null=True)
...
def FuncionesByCine(request, id):
funcionesByCine = Funcion.objects.filter(idcine=id)
context = {'funcionesByCine': funcionesByCine}
return render_to_response('funciones-by-cine.html', context, context_instance=RequestContext(request))
def CineDetail(request, cineslug):
cine = Cine.objects.get(slug=cineslug)
context = {'cine': cine}
return render_to_response('cine-individual.html', context, context_instance=RequestContext(request))
{% extends 'cines-menu.html' %}
{% block content %}
<div class="cine">
<p>Nombre: <a href="funciones/{{cine.id}}">{{cine}}</a></p>
<p>Ciudad:{{cine.ciudad}}</p>
<p>Direccion:{{cine.direccion}}</p>
{% endblock %}
我的观点如下:
class Cine(models.Model):
nombre = models.CharField(max_length=150)
ciudad = models.ForeignKey(Ciudad, db_column='ciudad')
slug = models.SlugField(unique=True, blank=True)
...
class Funcion(models.Model):
idpelicula = models.ForeignKey(Pelicula, db_column='idpelicula')
idcine = models.ForeignKey(Cine, db_column='idcine', null=True)
hora = models.TimeField(null=True)
...
def FuncionesByCine(request, id):
funcionesByCine = Funcion.objects.filter(idcine=id)
context = {'funcionesByCine': funcionesByCine}
return render_to_response('funciones-by-cine.html', context, context_instance=RequestContext(request))
def CineDetail(request, cineslug):
cine = Cine.objects.get(slug=cineslug)
context = {'cine': cine}
return render_to_response('cine-individual.html', context, context_instance=RequestContext(request))
{% extends 'cines-menu.html' %}
{% block content %}
<div class="cine">
<p>Nombre: <a href="funciones/{{cine.id}}">{{cine}}</a></p>
<p>Ciudad:{{cine.ciudad}}</p>
<p>Direccion:{{cine.direccion}}</p>
{% endblock %}
网址是:
#Queryset containing all the Cine objects
cine_info = {
'queryset': Cine.objects.all(),
'template_name': 'cines-all.html',
}
url(r'^complejos/$', list_detail.object_list, cine_info),
url(r'^complejos/(?P<cineslug>.*)/$', views.CineDetail),
url(r'^complejos/(?P<cineslug>.*)/funciones/(?P<id>.*)/$', views.FuncionesByCine),
url(r'^funciones/$', views.FuncionesAll),
url(r'^funciones/(?P<id>.*)/$', views.FuncionesByCine),
#包含所有电影对象的查询集
电影资讯={
'queryset':Cine.objects.all(),
“模板名称”:“cines all.html”,
}
url(r“^complejos/$”,列表\u detail.object\u列表,电影信息),
url(r'^complejos/(?P.*)/$,views.CineDetail),
url(r'^complejos/(?P.*)/functiones/(?P.*)/$,views.functionesbycine),
url(r“^funciones/$”,views.FuncionesAll),
url(r'^funciones/(?P.*)/$,views.FuncionesByCine),
当我从如下url调用Function时,这将为我提供与Function中的“电影”关联的所需“Functiones”:localhost:8000/Functiones/1
现在,我希望能够从显示单个电影院(“电影”)的模板调用此视图,并使用此视图能够显示该“电影”上的所有放映时间(“功能”)
我尝试使用相同的视图,但使用不同的url:
url(r'^complejos/(?P<cineslug>.*)/funciones/(?P<id>.*)/$', views.FuncionesByCine),
url(r'^complejos/(?P.*)/functiones/(?P.*)/$,views.functionesbycine),
模板调用如下所示:
class Cine(models.Model):
nombre = models.CharField(max_length=150)
ciudad = models.ForeignKey(Ciudad, db_column='ciudad')
slug = models.SlugField(unique=True, blank=True)
...
class Funcion(models.Model):
idpelicula = models.ForeignKey(Pelicula, db_column='idpelicula')
idcine = models.ForeignKey(Cine, db_column='idcine', null=True)
hora = models.TimeField(null=True)
...
def FuncionesByCine(request, id):
funcionesByCine = Funcion.objects.filter(idcine=id)
context = {'funcionesByCine': funcionesByCine}
return render_to_response('funciones-by-cine.html', context, context_instance=RequestContext(request))
def CineDetail(request, cineslug):
cine = Cine.objects.get(slug=cineslug)
context = {'cine': cine}
return render_to_response('cine-individual.html', context, context_instance=RequestContext(request))
{% extends 'cines-menu.html' %}
{% block content %}
<div class="cine">
<p>Nombre: <a href="funciones/{{cine.id}}">{{cine}}</a></p>
<p>Ciudad:{{cine.ciudad}}</p>
<p>Direccion:{{cine.direccion}}</p>
{% endblock %}
{%extends'cines menu.html%}
{%block content%}
名义:
城市:{{cine.Ciudad}
目录:{{cine.Direccion}
{%endblock%}
这目前不起作用。有什么想法吗?
谢谢
编辑:我已经添加了其他视图和URL(也是使用cineslug的视图和URL)什么具体不起作用?您收到了哪些错误 我看到一个您正试图将
cineslug
传递给视图函数并作为参数
使用时,它们将作为位置参数传递给视图
def functionesbycine(请求,id):
应该是
def functionesbycine(请求、电影片段、id):
但我相信这会破坏你原来的网址
您可以将函数定义更改为def functionesbycine(请求、电影片段、id):
并为cineslug
url(r'^functiones/(?p.*)/$,views.functionesbycine,{'cineslaug':None})
您可以通过slug检索函数
,如:
funciones=Funcion.objects.filter(idcine\uu slug={{{您的slug值在这里}})
Hi,首先您应该在URL上使用更好的正则表达式。假设id是一个数字字段,您应该匹配每个值。因此,首先用(?P.*)代替(?P\d+)。弹头场也是如此。而不是(?P*)替换为与段塞场更相关的内容。(?P[\w-]+)@andrefsp谢谢你的提示,我对regex没有太多经验,但我会用谷歌搜索你给我的那些来理解它们。嗨,实际上我不需要cineslug来查看这个视图,我只是在上一个视图中使用它,这个视图有一个电影列表,可以带我去单独的电影。但在这种情况下,当你点击一部电影时,我希望能够获得将该电影作为外键的“函数”。@Edu添加了如何通过slugyes查询function
的示例。是的,刚刚测试了这两个函数,它可以通过id或通过slug查询函数,就像你提到的那样。我的困惑实际上是URL,但我能够找出我做错了什么。谢谢你的帮助。