как установить источник для внешнего ключа в сериализаторе django работа кадра отдыха - PullRequest
0 голосов
/ 27 мая 2020

У меня есть следующая модель:

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'

1 Ответ

0 голосов
/ 27 мая 2020

измените свой код следующим образом

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

Исходная документация

...