出于某种原因,我需要在管理员中编辑模块时访问当前对象。我怎么能这样做。
让我们看一个例子:
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。如何获取当前图书对象。