我有标准的Django民意调查模型
class Poll(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.question_text
class Choice(models.Model):
poll = models.ForeignKey(Poll, null=True, blank=True)
choice_text = models.CharField(max_length=200)
vote_count = models.IntegerField(default=0)
在序列化程序中,我添加了对外键的引用,如下所示:
class PollSerializer(serializers.ModelSerializer):
choices = ChoiceSerializer(many=True, read_only=True, required=False)
class Meta:
model = Poll
fields = ('id', 'question_text', 'pub_date', 'choices')
我已经由django管理员创建了特定于问题的选择。在django rest框架的民意调查列表中,我希望看到与民意调查相关的选项列表。它仅显示轮询对象,如下所示。
有人可以指导我有关丢失的内容吗?如何查看与投票相关的选择?
答案 0 :(得分:2)
由于选择对象的反向管理器为choice_set
,因此应为choices
字段设置source='choice_set'
:
class PollSerializer(serializers.ModelSerializer):
choices = ChoiceSerializer(many=True, read_only=True, required=False, source='choice_set')
答案 1 :(得分:2)
除了@neverwalkaloner的answer之外,您也可以通过这种方式进行操作,
class PollSerializer(serializers.ModelSerializer):
choices_set = ChoiceSerializer(many=True, read_only=True, required=False)
class Meta:
model = Poll
fields = ('id', 'question_text', 'pub_date', 'choices_set')