【发布时间】:2019-06-08 23:38:20
【问题描述】:
我有一个模型电影和一个模型 DefaultMoviePriceFor,它保存了特定类型的默认价格:
class Movie(models.Model):
name = models.TextField('name', null=True)
genre = models.TextField('genre', null=True)
price = models.IntegerField('price', default=0)
class DefaultMoviePriceForGenre(models.Model):
genre = models.TextField('genre', null=True)
price = models.IntegerField('price', default=0)
现在我想在每次实例化 Movie 对象时用 Movie.genre 的默认价格填充 Movie.price。
有什么好的方法吗?我脑子里有 SQL 触发器,他们可以做到,不是吗?在django中是怎么做的?
【问题讨论】:
-
使
price可以为空,如果它为空,则获取相关的DefaultMoviePriceForGenre。 -
@WillemVanOnsem 但在哪里?模型实例化时是否调用了任何方法?
-
与问题的“如何在保存时调用自定义代码”部分无关 - 如果您也将
genre设为模型并使用ForeignKey关系来确保数据正确一致。
标签: python django django-models