Django:如何将一个模型作为外键添加到另一个模型中?

时间:2015-10-12 14:34:48

标签: python django django-rest-framework

我正在使用Django-Rest-Framework构建我的第一个API,而且我有点卡住了。

我有一个模特:

class Stage(TimeStampedModel):
    name = models.CharField(max_lenth=20)
    application = models.ForeignKey(Application, null=True)
    creator = models.ForeignKey(Account, null=True)

和序列化器一样

class StageSerializer(serializers.ModelSerializer):
    assignee = AccountSerializer(read_only=True, required=False)
    application = ApplicationSerailizer(read_only=True, required=False)

class Meta:
    model = Stage
    fields = ('id', 'name', 'assignee', 'created_at', 'updated_at',
              'application',)
    read_only_fields = ('created_at', 'updated_at', 'assignee',
                        'application',)

视图如下:

class StageViewSet(viewsets.ModelViewSet):
    queryset = Stage.objects.order_by('-created_at')
    serializer_class = StageSerializer

    def perform_create(self, serializer):
        serializer.save(creator=self.request.user)

我想以编程方式保存当前应用程序,就像我正在使用用户一样。怎么做?

1 个答案:

答案 0 :(得分:0)

我认为这是一个身份问题,请注意class Meta必须是StageSerializer的子类。之后,一切都应该按预期工作。