在django rest框架中使用ForeignKey创建记录

时间:2014-12-26 07:16:29

标签: python django django-rest-framework

我有四个模型auth_userBCDauth_userBCD的父模型。如何在POST请求到来时为auth_user创建序列化程序,它可以插入auth_user然后在BC和{{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_idBC中进行输入。如果它在任何时候失败,它应该回滚Dauth_userBC中的所有交易。

如何在Django REST Framework中为此编写序列化程序和视图。

1 个答案:

答案 0 :(得分:0)

您可以将CreateAPIViewB模型和自定义表单结合使用,该表单包含B所需的所有字段以及User所需的所有字段。然后,当您覆盖视图中的create功能时,首先创建User,然后创建B

至于交易内容,the django docs解释了所有内容。