Django Model:为FK保存时创建一个新对象

时间:2013-06-12 14:38:55

标签: django django-models

在我的Django模型中,我在名为Batch的类上有以下FK。

class Batch(models.Model):
    sender_name = models.ForeignKey(Originator,
                                        related_name='batch')

现在,这意味着用户必须首先在保存之前创建一个Originator。但是,如果Originator不存在,我想创建一个新的并将其添加到批处理中。我想在批处理的save()上做这个。但有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以在FK方法中创建view对象,或者在tastypie的情况下创建水合物。

如果不将FK对象创建逻辑放在模型的save方法中,则不要混淆逻辑。换句话说,避免在另一个类'save方法中创建一个类的对象。

这样逻辑就干净了,你所要做的就是bundle.data['contact'] = Originator.objects.get_or_create()而不是覆盖save