python - Django Rest序列化2级字段

标签 python django serialization django-rest-framework

您好,我需要在 2 级引用项的序列化器中添加一个字段。

我有以下模型:

模型.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)

序列化器.py:

class PossibleAnswerSerializer(serializers.ModelSerializer):
   #companyId = serializers.RelatedField()
   class Meta:
       model = PossibleAnswer
       fields = ('answerString', 'token', 'pollId', 'companyId')

我想为PossibleAnswer对象创建一个序列化器,该对象有一个名为company的字段。如何做这个引用?类似于:django 查询集过滤器中的 pollId__companyId。

最佳答案

另一个解决方案...

class PossibleAnswerSerializer(serializers.ModelSerializer):
   companyId = serializers.SerializerMethodField()

   def get_companyId(self, obj):
        return obj.pollId.companyId

   class Meta:
       model = PossibleAnswer
       fields = ('answerString', 'token', 'pollId', 'companyId',)

关于python - Django Rest序列化2级字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22232113/

相关文章:

python - 如何有效地选择按索引 pandas 分组的列中的最小值?

python - 从上下文管理器中产生是好的做法吗?

Django + 什么NOSQL在生产中使用最成熟?

python - 将列表序列化为 SQLite

python - 如何收集递归回溯的结果?

python - 为什么它有效?

python - 如何在 settings.py 中定义常量并在 django 的 View 函数中访问它们

python - 带有来自 validated_data 的 kwargs 的 Django Rest Framework update()

c# - Protobuf-net 中没有为类型 : System. Management.Automation.PSObject 定义序列化器

java - 对于实现 Iterable 的类,Android 上下文不可序列化的困境