汎用の UpdateView クラスを使用して、多対多の関係の「両側」を編集できるかどうかについて質問があります。models.py で次のクラスが定義されています。
class SomeCategory(models.Model):
code = models.CharField(max_length=5)
name = models.CharField(max_length=40)
class SomeClass(models.Model):
code = models.CharField(max_length=3, unique=True)
name = models.CharField(max_length=30, unique=False)
age = models.IntegerField(null=False)
allowed_categories = models.ManyToManyField(SomeCategory)
これらは両方とも、アプリケーションの構成データのセットを格納するディクショナリ タイプのテーブルです。辞書を編集できるようにするために、単純な UpdateViews を使用します。
class SomeClassUpdate(UpdateView):
model = SomeClass
template_name = 'admin/edit_class.html'
fields = ['code', 'name', 'age', 'allowed_categories']
ordering = ['code']
これは正常に機能し、素敵な複数選択が得られ、すべてが完璧です。ただし、SomeCategory テーブルの側から関係を編集できるようにしたいので、特定の SomeCategory にリンクされている SomeClass 要素を選択できます。
class SomeCategoryUpdate(UpdateView):
model = SomeCategory
template_name = 'admin/edit_category.html'
fields = ['code', 'name', ??????? ]
ordering = ['code']
SomeCategory モデルに属性を追加しようとしましたrelated_name
が、うまくいきませんでした。
カスタム ModelForm を使用せずにこれを行うことができる場合のアイデアはありますか?
主なライブラリ バージョン:
Django==1.11.8
psycopg2==2.7.4
PS: これは、stackoverflow で尋ねた最初の質問です。私の投稿に必須の要素が欠けている場合はお知らせください。