我正在尝试允许属于相关对象的字段可从ModelSerializer中读取和写入。我有一个模型Group
:
class Group(models.Model):
...
name = models.CharField(max_length=128)
def get_language(self):
line = self.line_set.all()[0]
return line.language
...
和相应的序列化器:
class GroupSerializer(serializers.ModelSerializer):
language = serializers.CharField(source='get_language')
class Meta:
model = Group
fields = ('id', 'name', 'language')
lookup_field= 'pk'
Group
模型与Line
字段相关,其中language
字段存在:
class Line(models.Model):
...
language = models.CharField(max_length=24)
groups = models.ManyToManyField(Group, blank=True, null=True)
...
我正在尝试在组API中公开Line.language
以阅读并编写。我上面尝试过使用CharField,但是当我发布一个新模型时,我收到了这个错误:
TypeError at /AO/s/v2/group/
'get_language' is an invalid keyword argument for this function
我还想过尝试自定义相关字段并实现from_native,但这需要一个与此无关的查询集。
提前致谢。