Django REST Framework嵌套关系没有相关名称

时间:2013-08-12 05:35:25

标签: django serialization django-rest-framework

我有一些与User相关的模型,但在用户上没有相关名称:

class Registration(models.Model):
    user = models.OneToOneField('auth.User', related_name='+')

class ManyToOneModel(models.Model):
    user = models.ForeignKey('auth.User', related_name='+')

我想为User创建一个序列化程序,它可以将其作为嵌套资源。有没有办法指定查询集/对象是什么?这是我所拥有的一个例子 - 它完全与'User' object has no attribute 'registration'

有关
class UserSerializer(serializers.Serializer):
    pk = serializers.Field()

    registration = RegistrationSerializer()
    many_to_one_model = ManyToOneModelSerializer(many=True, required=False)

1 个答案:

答案 0 :(得分:2)

我猜您需要手动查询相关对象,然后手动构建序列化程序。然后,您将构造最终表示并将其作为data参数传递给Response对象。

看起来你的生活很艰难。如果您只是在相关模型上定义related_name,则可以使用ModelSerializer(或HyperlinkedModelSerializer),它将全部 Just Work™。 - 你有什么理由不能这样做吗?