0

我有类似于下面的模型:

class Submission(models.Model):
    round = models.ForeignKey('Round',related_name='submissions')
    text = models.TextField()

class Round(models.Model):
    favorite = models.OneToOneField('Submission',related_name='round_favorite+',null=True)

是否有任何内置方法可以强制 Round.favorite 在 Round.submissions 中?IE:

assert(favorite in round.submissions.all())

如果不是,那么执行此断言的最佳方法是什么?pre_save 信号?覆盖 Model.save?

4

1 回答 1

1

您应该覆盖Round模型的保存以确保favorite提交存在,如果不保存则保存。

如果在ins 不存在时尝试保存Round模型,很可能会抛出异常。所以你可以使用异常保存并重试。favoriteSubmissionSubmission.DoesNotExist

于 2013-01-18T08:05:22.717 回答