最初に、別の方法がある場合に備えて達成しようとしていることを説明します。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