Сначала я изложу, чего я пытаюсь достичь, если есть другой способ сделать это!Редактирование обеих сторон M2M в Admin Page
Я хочу иметь возможность редактировать обе стороны отношения M2M (желательно на странице администратора, хотя, если это возможно, она может быть на обычной странице) с использованием любого из нескольких интерфейсов.
Проблема, очевидно, связана с обратной стороной, так как основная сторона (где определена взаимосвязь) отлично работает автоматом.
Я пробовал некоторые советы здесь, чтобы получить встроенный текст, который работает, но это не очень приятный интерфейс.
Совет, который я получил в списке рассылки django, заключался в использовании пользовательской ModelForm. Я добрался до отображения многоселекторного поля, но он, похоже, не «подключен» к чему-либо, поскольку он не начинается с чего-либо выбранного и не сохраняет никаких изменений.
Вот соответствующие фрагменты кода:
#models.py
class Tag(models.Model):
name = models.CharField(max_length=200)
class Project(models.Model):
name = models.CharField(max_length=200)
description = models.TextField()
tags = models.ManyToManyField(Tag, related_name='projects')
#admin.py
class TagForm(ModelForm):
fields = ('name', 'projects')
projects = ModelMultipleChoiceField(Project.objects.all(), widget=SelectMultiple())
class Meta:
model = Tag
class TagAdmin(admin.ModelAdmin):
fields = ('name', 'projects')
form = TagForm
Любая помощь будет высоко ценится, либо получать код, чтобы работать или обеспечивая лучший способ сделать это!
DavidM
Ничего себе, дружелюбные люди здесь, 11 минут и 2 голосов! – DavidM