Django查看IssueForwardKey

2024-04-19 17:56:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我在相关的模型类上遇到了麻烦。 我有一个模型是这样的:

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)
    ...

我的观点如下:

^{pr2}$

网址是:

#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),

这样,当我从url调用“cine”时,它将提供与函数“cine”关联的所需“functiones”:本地主机:8000/functiones/1。在

现在,我要做的是从一个显示单个电影院(“cine”)的模板调用这个视图,并使用这个视图来显示该“cine”上的所有放映时间(“functiones”)。在

我尝试使用相同的视图,但使用不同的url:

url(r'^complejos/(?P<cineslug>.*)/funciones/(?P<id>.*)/$', views.FuncionesByCine),

模板调用如下所示:

{% 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 %}

这目前不起作用。有什么想法吗? 谢谢!在

编辑:我添加了其他视图和url(也是使用cineslug的视图和url)


Tags: 视图idtrueurldbmodelsviewsclass
1条回答
网友
1楼 · 发布于 2024-04-19 17:56:31

具体什么不起作用?你收到了什么错误?在

我看到一个您正试图将cineslug作为参数传递给您的view函数。在

使用named groups时,它们作为位置参数传递给视图。在

def FuncionesByCine(request, id):

应该是

def FuncionesByCine(request, cineslug, id):

但我相信这会破坏你原来的网址

您可以将函数定义更改为def FuncionesByCine(request, cineslug, id):

并传入cineslug的默认值

url(r'^funciones/(?P<id>.*)/$', views.FuncionesByCine, {'cineslug': None})

def FuncionesByCine(request, cineslug, id):
  if cineslug is None:
     # this is from funciones/{id} 

您可以通过slug来检索Funcion,如下所示:

funciones = Funcion.objects.filter(idcine__slug={{ your slug value here }})

相关问题 更多 >