Есть
модель 'Project' c полями
'managers и 'members' у которых тип поле
ManyToManyField.
Пытаюсь сделать так, чтобы при заполнении поля 'managers' записи из данного поля автоматически дублировались или записывались в поле 'members'. В админку вывожу лишь поле 'managers'. После создания объекта Project поле 'members' пустое в базе данных. Как можно решить данную проблему? Вот что сделал на данный момент:
models.py:
class Project(models.Model):
***
managers = models.ManyToManyField(User, related_name='managers')
members = models.ManyToManyField(User, related_name='members')
def save(self, *args, **kwargs):
if self.id:
for manager in self.managers.all():
if manager not in self.members.all():
self.members.add(manager)
super(Project, self).save(*args, **kwargs)
Также пробовал в самой админке следующее, но безрезультатно:
admin.py:
class ProjectAdminForm(ModelForm):
class Meta:
model = Project
fields = 'managers'
def clean(self):
members = self.cleaned_data['members']
managers = list(self.cleaned_data['managers'])
for manager in managers:
if manager not in members:
members.append(manager)
self.cleaned_data['members'] = members
return self.cleaned_data
class ProjectAdmin(admin.ModelAdmin):
model = Project
form = ProjectAdminForm
admin.site.register(Project, ProjectAdmin)