为django admin中的任何应用添加表单,对于该模型的外键字段..带有添加按钮的下拉列表(在弹出窗口中打开)。我们可以有一个表单,我们可以在同一表单中添加外键模型字段。
例如
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
contact = models.ForeignKey(Contact, blank=True, null=True)
对于用户和联系人字段,管理员添加表单中包含带添加按钮的下拉列表。我们可以在同一页面中显示所有用户和联系人字段吗?
答案 0 :(得分:13)
是的,你可以使用内联管理系统来做到这一点。
class UserAdmin(admin.StackedInline):
model = User
class ContactAdmin(admin.StackedInline):
model = Contact
class UserProfileAdmin(admin.ModelAdmin):
inlines = [ UserAdmin, ContactAdmin ]
了解更多详情,请查看https://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects 。
答案 1 :(得分:3)
有一个django附加组件可以在这种情况下进行内联,其中关系与通常情况相反:django_reverse_admin
您需要将django_reverse_admin添加到您的requirements.txt:
-e git+https://github.com/anziem/django_reverse_admin.git#egg=django_reverse_admin
然后导入它:
admin.py
from django_reverse_admin import ReverseModelAdmin
class UserProfileAdmin(ReverseModelAdmin):
inline_reverse = ['user', 'contact']
inline_type = 'tabular' # or could be 'stacked'
admin.site.register(UserProfile, UserProfileAdmin)