0

私はこの問題に出くわし、それを解決しようとして初心者の脳が揚げられました。ここには、欠けている基本的な概念がいくつかあるように感じます。

したがって、カテゴリ選択フィールドと「監督」モデルへのm2m関係を持つこの「映画」モデルがあり、2つの異なるビューを作成しようとしています.1つはカテゴリでフィルタリングされた映画のリストを返し、もう1つはリストを返します監督によってフィルタリングされた映画の数。最初のものは簡単ですが、ディレクター モデルの名前フィールドを取得して 2 番目のフィルターを作成する方法がわかりません。

だから私はこのモデルを持っています(私が上で述べたカテゴリのものを含む無関係なものを取り出しました)

class Director(models.Model):
    name = models.CharField(max_length=50)
    web = models.URLField(blank=True, help_text= "opcional")


class Film(models.Model):

    name = models.CharField(max_length=50)
    slug = models.SlugField(max_length= 15)
    director = models.ManyToManyField(Director, blank=True, help_text= "opcional")

このURL

(r'^peliculas/director/(?P<director>\w+)/$', 'filtered_by_director'),

そしてこの景色

def filtered_by_director(request,director):
    return list_detail.object_list(
        request, 
        queryset = Film.objects.filter(director.name=director),
        template_name ='sections/film_list.html',
        template_object_name = 'film',
        paginate_by = 3

        )

関連するオブジェクトのリストをレンダリングするために、両方のビューで同じテンプレートが使用されることになっています ビューは、m2m フィールドのクエリセットで使用しているフィルターが好きではありませんが、実際にそれを行う方法がわかりません。考えられることは何でも試してみましたが、「キーワードを式にすることはできません」というエラーが表示されます

この卑劣な初心者への助けをいただければ幸いです。

4

2 に答える 2

0

フィルターで、( documentation )のようにディレクター名を指定してみてください。

filter(director__name=director)

于 2011-02-16T14:42:43.070 に答える
0

ラインqueryset = Film.objects.filter(director.name=director),

読む必要があります:queryset = Film.objects.filter(director__name=director),

フィールド検索は、__二重下線構文によって行われます: http://docs.djangoproject.com/en/dev/topics/db/queries/#field-lookups

于 2011-02-16T14:42:45.433 に答える