먼저 다른 방법으로 갈 경우를 대비하여 내가 달성하고자하는 것을 정리해 보겠습니다!관리자 페이지에서 M2M의 양쪽 수정하기
다중 선택 인터페이스를 사용하여 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