在为django管理中任何应用程序添加表单中,对于模型的外键字段..出现一个带有添加按钮的下拉列表(在弹出窗口中打开)。我们是否可以有一个表单,我们可以在同一表单中添加外键模型字段。
例如,用于
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
contact = models.ForeignKey(Contact, blank=True, null=True)
对于用户和联系人字段,一个带有添加按钮的下拉列表出现在admin add form.Can中,我们有用户和联系人的所有字段在同一页中??
发布于 2011-06-27 22:30:05
可以,您可以使用内联管理系统来完成此操作。
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。
发布于 2016-09-15 22:47:28
在这种关系与通常相反的情况下,有一个django附加组件可以获得内联:django_reverse_admin
你需要在你的requirements.txt中添加django_reverse_admin:
-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)
发布于 2021-09-21 16:26:54
最简单的方法是这样的。
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)
https://stackoverflow.com/questions/6492424
复制相似问题