I have two models:
class RateCard(models.Model):
name = models.CharField()
pricing_type = models.ForeignKey(PriceAttribute)
and
class RateCardHistory(models.Model):
name = models.CharField()
pricing_type = models.ForeignKey(PriceAttribute)
я хочу, чтобы на каждой операции в RateCard новая запись должна была вставить RateCardHistory
Какой из них будет лучшим способом для достижения этих сигналов Django post_save или выше, используйте метод сохранения RateCard или есть какой-либо другой подход, который будет хорошим.
Вы можете ovveride метод сохранения в RateCard
class RateCard(models.Model):
name = models.CharField()
pricing_type = models.ForeignKey(PriceAttribute)
def save(self, *args, **kwargs):
# the call to the super save the record as usual
super(RateCard,self).save(*args,**kwargs)
# do here what you want... create your new related records
new_card_history = RateCardHistory.objects.create(name='the name', pricing_type=self)
Я предлагаю вам внести некоторые изменения в свой код. Добавьте дату создания, если вы хотите получить поля в порядке, создав и добавив также связанное имя, чтобы получить истории из RateCard
class RateCardHistory(models.Model):
name = models.CharField()
created = models.DateTimeField(auto_now_add=True)
pricing_type = models.ForeignKey(PriceAttribute, related_name='histories')