Нужно удалить все отношения с сегментами, в случае если industry_main изменилось
class Project(models.Model):
'''Основная модель системы - паспорт проекта'''
name = models.CharField('Короткое название проекта',
max_length=255, default='Новый проект')
financing_type = models.PositiveSmallIntegerField('Тип проекта',
choices=choices.FINANCING_TYPE, null=True, default=0)
industry_main = models.ForeignKey(Industry,
on_delete=models.PROTECT,
related_name='industry_main', blank=True, null=True)
industry_segments = models.ManyToManyField(Segment, blank=True)
class Meta:
ordering = ['-create_date']
def __init__(self, *args, **kwargs):
super(Project, self).__init__(*args, **kwargs)
self.init_industry_main = self.industry_main
def del_segments(self):
return self.industry_segments.clear()
def save(self,*args, **kwargs):
if self.init_industry_main!=self.industry_main:
self.del_segments()
super().save(*args, **kwargs)
На принтах все работает, сегменты вроде отчищаются, но в базе данных никаких изменений. В чем может быть проблема? Почему это не записывается в базу данных? Хотя если попробую переопределить name, то все работает так как нужно.