Вот ситуация:
Скажем, у меня есть модель A в django. Когда я сохраняю объект (класса A), я должен сохранить, это - поля во все другие объекты этого класса. Я подразумеваю, что мне нужно любой, объект быть копией lat сохранил тот.
Когда я использую сигналы (постсохраните, например), я получаю рекурсию (объекты пытаются сохранить друг друга, я предполагаю), и мой Python умирает.
Я мужчины, я ожидал, что с помощью .save () метод на том же классе в пред/постсохранение сигнал вызовет рекурсию, но просто не знать, как избежать его.
Что мы делаем?
Это будет работать:
class YourModel(models.Model):
name = models.CharField(max_length=50)
def save_dupe(self):
super(YourModel, self).save()
def save(self, *args, **kwargs):
super(YourModel, self).save(*args, **kwargs)
for model in YourModel.objects.exclude(pk=self.pk):
model.name = self.name
# Repeat the above for all your other fields
model.save_dupe()
Если у вас много полей, вы, вероятно, захотите перебрать их при копировании в другую модель. Я оставлю это тебе.