何らかの理由で、管理者でモジュールを編集しているときに現在のオブジェクトにアクセスする必要があります。どうすればそうできますか。
例を見てみましょう:
class Book(models.Model):
title = models.CharField(max_length=250)
ISBN = models.CharField(max_length=20)
author = models.ManyToManyField(Author)
publisher = models.ManyToManyField(Publisher)
管理フォームには、著者と発行者のオートコンプリート フィールドがあります。そのために、カスタム ウィジェットを作成しました。私の管理フォームは次のようになります。
class BookForm(forms.ModelForm):
author = forms.CharField(required=False, widget=AutoCompleteWidget('author'), help_text="Please type author name")
publisher = forms.CharField(required=False, widget=AutoCompleteWidget('publisher'), help_text="Please type publisher name")
def __init__(self, *args, **kwargs):
kwargs['initial'] = {'publihser': {author_list}, 'author' : {publisher_list}}
class Meta:
model = Book
ご覧のとおり、フォームは完全に異なるため、デフォルトの動作が変更されます。管理者から本を編集しているときに、関連付けられているすべての出版社と著者を author_list と publisher_list に取得したいと考えています。管理フォームで初期値を設定できます。しかし、私は現在の本を知る必要があり、関連する出版社と著者を取得するための ID です。現在の本オブジェクトを取得する方法。