【发布时间】:2013-06-12 14:38:55
【问题描述】:
在我的 Django 模型中,我在一个名为 Batch 的类上有以下 FK。
class Batch(models.Model):
sender_name = models.ForeignKey(Originator,
related_name='batch')
现在,这意味着用户在保存之前始终必须先创建一个 Originator。但是,我想,如果 Originator 不存在,则创建一个新的并将其添加到批处理中。我正在考虑在批处理的 save() 上执行此操作。但有更好的方法吗?
【问题讨论】:
-
是通过表单创建Batch吗?
-
可以,但也可以通过 tasypie api。任何 get_or_create() 快捷方式?
-
您可以在 save 方法中执行此操作,但我会将逻辑放在模型的 save 方法之前 - 当您从 tastepie 接收上下文数据时,这样您就不会混淆逻辑 - 避免在另一个类的保存方法中创建不同类的对象
-
所以你的说法是在视图中或在美味的情况下水合物?即 bundle.data['contact'] = Originator.objects.get_or_create()
-
是的.. 这样逻辑就干净了,你所要做的就是 save() 。
标签: django django-models