0

関連するモデルクラスで問題が発生しています。私は次のようなモデルを持っています:

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

そして、URL:

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

これにより、localhost:8000 / funciones / 1のようなURLから呼び出すと、Funcionの「cine」に関連付けられた目的の「funciones」が得られます。

さて、私がしたいのは、個々の映画館('cine')を表示するテンプレートからこのビューを呼び出し、このビューを使用して、その上にあるすべての上映時間(' funciones')を表示できるようにすることです。 「シネ」。

同じビューを使用しようとしていますが、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(シネスラッグを使用するものも)を追加しました

4

1 に答える 1

1

具体的に何が機能していないのですか?どのようなエラーが発生していますか?

cineslugビュー関数にパラメータとして渡そうとしているものが表示されます。

名前付きグループを使用した場合、それらは位置引数としてビューに渡されます。

def FuncionesByCine(request, id):

shoudl be

def FuncionesByCine(request, cineslug, id):

しかし、私はこれがあなたの元のURLを壊すと信じています、

関数定義を次のように変更できます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} 

Funcion次のようなスラッグで'を取得できます。

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

于 2012-11-13T17:32:51.147 に答える