是否有办法在创建新行后获得默认值(例如UUID类型的ID)
这是我的模型
class Employee(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name= models.CharField(max_length=255)
created_at = models.DateField(default=None, blank=True, null=True)
class Meta:
db_table="business"
当我创建时,我这样做,例如
from rest_framework import generics
from django.forms.models import model_to_dict
class Create(generics.CreateAPIView):
def post(self, request)
inputData = {"name":"abcdef", "created_at": datetime.datetime.now}
employee = Employee.objects.create(**inputData)
return JsonResponse(model_to_dict(employee), safe=False)
下面是响应:
{
"name": "abcdef",
"created_at": "2022-05-24T10:36:39.126",
}
现在我不知道新创建的行ID是什么
这是因为您将id
设置为不可编辑的。同时,model_to_dict
返回一个适合作为Form的initial
关键字参数传递的字典。
您可以很容易地检查model_to_dict
的源代码,并看到具有该属性集的字段被跳过。检查这个Convert Django Model对象,让它的所有字段都保持完整,这可能会有帮助。