Ali*_*air 21 django django-models django-admin
假设我有书籍和作者模型.
class Author(models.Model):
name = CharField(max_length=100)
class Book(models.Model):
title = CharField(max_length=250)
authors = ManyToManyField(Author)
Run Code Online (Sandbox Code Playgroud)
我希望每本书都有多个作者,在Django管理网站上,我希望能够一次性从编辑页面中将多个新作者添加到一本书中.我不需要为作者添加书籍.
这可能吗?如果是这样,最好和/或最简单的方法是什么?
Pra*_*eek 26
做你想做的事情很简单,如果我找到你的话:
您应该在apps目录中创建一个admin.py文件,然后编写以下代码:
from django.contrib import admin
from myapps.models import Author, Book
class BookAdmin(admin.ModelAdmin):
model= Book
filter_horizontal = ('authors',) #If you don't specify this, you will get a multiple select widget.
admin.site.register(Author)
admin.site.register(Book, BookAdmin)
Run Code Online (Sandbox Code Playgroud)
And*_*eev 18
试试这个:
class AuthorInline(admin.TabularInline):
model = Book.authors.through
verbose_name = u"Author"
verbose_name_plural = u"Authors"
class BookAdmin(admin.ModelAdmin):
exclude = ("authors", )
inlines = (
AuthorInline,
)
Run Code Online (Sandbox Code Playgroud)
如果您有许多作者raw_id_fields = ("author", ),AuthorInline则可能需要添加.