0

使用django-rest-framework可以从相关字段中检索内容。因此,例如,我想创建一个流派列表,其中包含其中的所有项目。这就是我所拥有的,但我不断收到错误:

“流派”对象没有属性“project_set”

模型.py

class Genre(models.Model):
    name = models.CharField(max_length=100, db_index=True)

class Project(models.Model):
    title = models.CharField(max_length=100, unique=True)
    genres = models.ManyToManyField(Genre, related_name='genres')

序列化程序.py

class GenreSerializer(serializers.ModelSerializer):    
    project_set = serializers.ManyRelatedField()

    class Meta:
        model = Genre
        fields = ('name', 'project_set')
4

1 回答 1

3

您在Project课堂上使用的相关名称命名错误。该相关名称是您访问与给定类型实例相关的项目集的方式。所以你应该使用类似related_name='projects'. (因为它是你搞错了。)

然后确保您的序列化程序类与您正在使用的相关名称匹配,因此在这两个地方project_set都应该改为projects.

(或者,您可以完全删除related_name='genres',一切都会按您的预期工作,因为默认的 related_name 将是'project_set'。)

于 2013-03-18T12:55:09.497 回答