Add related field instance from admin panel in Django
假设我想要 3 个这样的课程:
1 2 3 4 5 6 7 8 9 | class Book(models.Model): # ... class Author(models.Model): # ... class BookAuthor(models.Model): book = models.ForeignKey(Book) author = models.ForeignKey(Author) |
我想要的是能够从
我认为这样做的优雅方法是在不同的应用程序中实现视图。但是这个项目只会被管理员用作数据收集工具。所以我不想实现用户界面,因此从管理面板处理所有事情。那么这(链接模型)是否可以通过 Django 的管理员来实现?
感谢您的帮助!
我的建议是在您的管理视图中使用
您可以在
中执行以下操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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, ] |
通过这种方式,您不会"直接"插入 Book 管理表单中的所有数据,而是会弹出窗口,您可以在其中插入数据。这是控制插入数据的工作流程和编写几行代码之间的良好折衷 (IMO)。