gpt4 book ai didi

python - 在客户端创建 UUID 并使用 Django REST Framework 和使用 POST 保存主键

转载 作者:太空狗 更新时间:2023-10-29 17:48:57 24 4
gpt4 key购买 nike

我希望能够在客户端创建一个 UUID 并将其发送到 Django Rest Framework (DRF) 并将其用于 Primary模型的键

到目前为止,当我发送在我的源代码中标记为 idPrimary Key 时,DRF 会忽略 id 并使用模型的默认参数以生成新的 UUID

但是,当我从模型进行测试时,使用普通的 Django ORM 创建对象并预先设置 UUID,模型接受 UUID Primary Key 并且不会尝试重新创建一个新的。

这可能吗?

我的堆栈是

  • Django 1.8

  • Django 休息框架 3.1

这是代码。

序列化程序.py:

class PersonCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Person
fields = ('id', 'username', 'email', 'password')

模型.py:

from django.contrib.auth.models import AbstractUser

class BaseModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

class Person(AbstractUser, BaseModel):

最佳答案

序列化器的id字段设置为read-only因为 editable=False 参数。

Model fields which have editable=False set, and AutoField fields will be set to read-only by default,

尝试显式声明它:

class PersonCreateSerializer(serializers.ModelSerializer):
# Explicit declaration sets the field to be `read_only=False`
id = serializers.UUIDField()

class Meta:
model = Person
fields = ('id', 'username', 'email', 'password')

关于python - 在客户端创建 UUID 并使用 Django REST Framework 和使用 POST 保存主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31687423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com