首页 文章

django admin外键字段数据添加

提问于
浏览
21

为django admin中的任何应用程序添加表单,对于该模型的外键字段..带有添加按钮的下拉列表(在弹出窗口中打开) . 我们可以有一个表单,我们可以在同一个表单中添加外键模型字段 .

例如

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    contact = models.ForeignKey(Contact, blank=True, null=True)

对于用户和联系人字段,管理员添加表单中存在带添加按钮的下拉列表 . 我们可以在同一页面中拥有用户和联系人的所有字段吗?

2 回答

  • 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 .

  • 2

    有一个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)
    

相关问题