【问题标题】:how to set source for for a foreign key in serializer django rest frame work如何在序列化程序 django rest 框架中为外键设置源
【发布时间】:2020-09-14 06:02:03
【问题描述】:

我的模型如下:

class UserWorkspace(models.Model):
    workspace = models.ForeignKey(
        "Workspace", models.CASCADE, db_column="workspace_uuid"
    )
    user = models.ForeignKey("User", models.CASCADE, db_column="user_uuid")

我需要在我尝试过的序列化程序中更改名称:

class UserWorkspaceSerializer(serializers.ModelSerializer):
    workspace_uuid = serializers.PrimaryKeyRelatedField(source="workspace", queryset=Workspace.objects.all())
    user_uuid = serializers.PrimaryKeyRelatedField(source="user", queryset=User.objects.all())

    class Meta:
        model = UserWorkspace
        fields = ("workspace_uuid", "user_uuid")

但我得到了错误

    return self.fields[key]
KeyError: 'workspace'

【问题讨论】:

    标签: python django django-rest-framework model serialization


    【解决方案1】:

    像这样改变你的代码

    workspace = serializers.PrimaryKeyRelatedField(source="workspace_uuid", queryset=Workspace.objects.all())
    user = serializers.PrimaryKeyRelatedField(source="user_uuid", queryset=User.objects.all())
    

    Source Documentation

    【讨论】:

    • 这不起作用这与删除这两行没有什么不同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2019-01-19
    • 2021-03-27
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多