您好我需要在2级参考项的序列化器中添加一个字段。
我有以下型号:
model.py:
class Company(models.Model):
companyName = models.CharField(max_length=50, blank=True)
class Poll(models.Model):
questionString = models.CharField(max_length=500, blank=True)
companyId = models.ForeignKey(Company, null=True, db_column='companyId', blank=True)
class PossibleAnswer(models.Model):
answerString = models.CharField(max_length=100, blank=True)
pollId = models.ForeignKey(Poll, null=True, db_column='pollId', blank=True,related_name='answers')
token = models.CharField(max_length=10, blank=True)
serializers.py:
class PossibleAnswerSerializer(serializers.ModelSerializer):
#companyId = serializers.RelatedField()
class Meta:
model = PossibleAnswer
fields = ('answerString', 'token', 'pollId', 'companyId')
我想为具有名为company的字段的PossibleAnswer对象创建一个Serializer。如何制作这个参考?类似于:django查询集过滤器中的pollId__companyId。
答案 0 :(得分:1)
我的字段是只读的,您可以使用serializers.Field
轻松实现此目的,该class PossibleAnswerSerializer(serializers.ModelSerializer):
companyId = serializers.Field(source='pollId.companyId')
class Meta:
model = PossibleAnswer
fields = ('answerString', 'token', 'pollId', 'companyId')
接受源的虚线路径。
你的Serializer将是:
Id
我也同意Erik,即使数据库表示只是ID,使用{{1}}命名模型属性也是一个坏主意。
答案 1 :(得分:1)
另一种解决方案......
ReadingResource