Django中的拆分字段将“添加”界面添加到其组成字段中

时间:2014-05-08 06:43:30

标签: python django django-admin

我正在使用Django 1.6。在"添加"我的一个模型的接口,我有一个字段是另一个模型的外键。因此,它显示为包含第二个模型的字符串表示形式的下拉框。我希望能够将其拆分为其组成字段。有没有办法做到这一点?

即。例如,在我的"添加"屏幕为" User"的模型,我有一个字段" Favorite Book"。 "图书"显示为带有字符串表示的下拉菜单"标题,作者"对于数据库中的所有书籍,我希望能够显示两个下拉菜单,一个用于标题和作者的每个字段。

修改 这不是我的实际应用。在我的应用程序中,还有一个附加功能,即所有作者 - 标题组合都是可能的(显然这不是这个例子的情况),因此能够分别选择标题和作者而不是从巨大的下拉菜单,包含所有可能的排列。

1 个答案:

答案 0 :(得分:0)

你所说的并没有多大意义。外键下拉列表代表数据库中的所有Book个对象,并允许您在User和您选择的特定Book之间创建关系,即特定的标题/作者组合。您无法单独选择标题和作者,因为它们是单个Book中的字段,并代表特定的Book(更不用说该标题是文本字段)

您可以使用Django Admin Inline。您可以在this question中看到内联示例:

enter image description here

这样,您就可以在同一个管理页面中将多个Books与一个User相关联。

# models.py
from django.db import models

class User(models.Model):
   name = models.CharField(max_length=100)

class Book(models.Model):
   user = models.ForeignKey(User)
   title = models.CharField(max_length=100)

# admin.py
from django.contrib import admin

class BookInline(admin.StackedInline):
    model = Book

class UserInline(admin.ModelAdmin):
    inlines = [
        BookInline,
    ]