django视图-在通用视图中访问m2m字段

django视图-在通用视图中访问m2m字段,django,views,generics,m2m,Django,Views,Generics,M2m,我偶然发现了这个问题,我的脑子在试图解决它时被炸了。我觉得这里有一些基本的概念,我没有 我有一个电影模型,它有一个类别选择字段,和一个导演模型有一个m2m关系,我试着写两个不同的视图,一个返回按类别过滤的电影列表,另一个返回按导演过滤的电影列表。 第一个很简单,但我不知道如何获取director模型的name字段来创建第二个过滤器 所以我有这个模型,我去掉了不相关的东西,包括我上面提到的分类 class Director(models.Model): name = models.Char

我偶然发现了这个问题,我的脑子在试图解决它时被炸了。我觉得这里有一些基本的概念,我没有

我有一个电影模型,它有一个类别选择字段,和一个导演模型有一个m2m关系,我试着写两个不同的视图,一个返回按类别过滤的电影列表,另一个返回按导演过滤的电影列表。 第一个很简单,但我不知道如何获取director模型的name字段来创建第二个过滤器

所以我有这个模型,我去掉了不相关的东西,包括我上面提到的分类

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'),
两个视图都应该使用相同的模板来呈现相关的对象列表 视图不喜欢我在m2m字段的queryset中使用的过滤器,但我不知道如何做。实际上,我已经尝试了我能想到的任何方法,它给了我一个关键字不能是表达式错误


对这个卑微的家伙的任何帮助都将不胜感激

在过滤器中,尝试指定控制器名称,如:

filterdirector\uuu name=director

行queryset=Film.objects.filterdirector.name=director

需要读取:queryset=Film.objects.filterdirector\uu name=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

        )