我有四个模型auth_user
,B
,C
和D
。 auth_user
是B
,C
和D
的父模型。如何在POST请求到来时为auth_user
创建序列化程序,它可以插入auth_user
然后在B
,C
和{{1}中创建记录连续的。如果在任何时候发生任何异常,则应回滚所有事务。我可以使用DRF实现这一目标吗?
我的模特:
D
我正在发布一个发布
的ajax电话class B(models.Model):
user = models.ForeignKey(auth_user)
name = models.CharField(max_length = 10)
class C(models.Model):
user = models.ForeignKey(auth_user)
owner = model.ForeignKey(auth_user) ## existing user ID
phone = models.CharField(max_length = 20)
class D(models.Model):
key = models.CharField(max_length = 10)
user = models.ForeignKey(auth_user)
指向应在{'owner_id':1,'name':xxx,'phone':899,'key':123}
表格中创建新用户的API网址,并使用该auth_user
在模型user_id
,B
和C
中进行输入。如果它在任何时候失败,它应该回滚D
,auth_user
,B
和C
中的所有交易。
如何在Django REST Framework中为此编写序列化程序和视图。
答案 0 :(得分:0)
您可以将CreateAPIView
与B
模型和自定义表单结合使用,该表单包含B
所需的所有字段以及User
所需的所有字段。然后,当您覆盖视图中的create
功能时,首先创建User
,然后创建B
。
至于交易内容,the django docs解释了所有内容。