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 次 |
最近记录: |