首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >django管理外键字段数据添加

django管理外键字段数据添加
EN

Stack Overflow用户
提问于 2011-06-27 19:53:36
回答 3查看 24.6K关注 0票数 28

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

例如,用于

代码语言:javascript
复制
class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    contact = models.ForeignKey(Contact, blank=True, null=True)

对于用户和联系人字段,一个带有添加按钮的下拉列表出现在admin add form.Can中,我们有用户和联系人的所有字段在同一页中??

EN

回答 3

Stack Overflow用户

发布于 2011-06-27 22:30:05

可以,您可以使用内联管理系统来完成此操作。

代码语言:javascript
复制
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

票数 20
EN

Stack Overflow用户

发布于 2016-09-15 22:47:28

在这种关系与通常相反的情况下,有一个django附加组件可以获得内联:django_reverse_admin

你需要在你的requirements.txt中添加django_reverse_admin:

代码语言:javascript
复制
-e git+https://github.com/anziem/django_reverse_admin.git#egg=django_reverse_admin

然后导入:

admin.py

代码语言:javascript
复制
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)
票数 5
EN

Stack Overflow用户

发布于 2021-09-21 16:26:54

最简单的方法是这样的。

代码语言:javascript
复制
class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    contact = models.ForeignKey(Contact, blank=True, null=True)


# Then in the admin create the custom admin view
from .models import Contact

class CustomAdminUserProfile(admin.ModelAdmin):
    list_display = ['contact', 'get_contact_additional_field']

    def get_contact_additional_field(self, obj):
        queryset = Contact.objects.filter(name=obj.name)[0]
        additional_field = queryset.additional_field
        return additional_field

#Then you register
admin.site.register(Contact, CustomAdminUserProfile)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6492424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档