假设我想要有3个这样的课程:
class Book(models.Model):
# ...
class Author(models.Model):
# ...
class BookAuthor(models.Model):
book = models.ForeignKey(Book)
author = models.ForeignKey(Author)
我想要的是能够从Book
模型的管理面板添加(并查看添加的内容)。 - 我怎么能在Django中这样做?
我认为这样做的优雅方法是在不同的应用中实现视图。但是这个项目只会被管理员用作数据收集工具。所以我不想实现用户界面,因此从管理面板处理所有内容。那么(链接模型)可以与Django的管理员一起使用吗?
感谢您的帮助!
答案 0 :(得分:1)
我的建议是在管理员视图中使用Inline
(https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin)
您可以在admin.py
中执行以下操作:
from django.contrib import admin
from ... import Book, BookAuthor, Author
class BookAuthorInline(admin.TabularInline):
model = BookAuthor
extra = 1
raw_id_fields = ( "book", "author", )
class BookAdmin(admin.ModelAdmin):
...
inlines = [
BookAuthorInline,
]
这样你就不会直接插入""书籍管理表单中的所有数据,但它弹出窗口,您可以在其中插入数据。在控制插入数据的工作流程和编写几行代码之间,这是一个很好的妥协(IMO)。