Aar*_*ier 12 python django rest django-rest-framework
我希望能够UUID在客户端上创建一个并将其发送到Django Rest Framework(DRF)并将其用于Primary Key模型.
到目前为止,当我发送在我的源代码中Primary Key标记的id,DRF忽略id并使用模型的默认参数来生成新的UUID.
但是,当我从模型测试时,使用普通的Django ORM来创建对象,并预先设置UUID,模型接受UUID它的原样Primary Key并且不会尝试重新创建一个新的.
这可能吗?
我的筹码是
Django 1.8
Django Rest Framework 3.1
这是代码.
serializers.py:
class PersonCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Person
fields = ('id', 'username', 'email', 'password')
Run Code Online (Sandbox Code Playgroud)
models.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):
Run Code Online (Sandbox Code Playgroud)
由于参数id,序列化程序的字段设置为只读editable=False.
具有editable = False设置的模型字段和默认情况下AutoField字段将设置为只读,
尝试明确声明:
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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3223 次 |
| 最近记录: |