如何添加“+”在Django Admin中使用一对多关系的按钮,如果该模型有ForeignKey? [英] How to add "+" button in Django Admin when using one-to-many relationship if that model have ForeignKey?
本文介绍了如何添加“+”在Django Admin中使用一对多关系的按钮,如果该模型有ForeignKey?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此问题是更好的Django UI扩展到一对多关系。
modles.py
from django.db import models
# Create your models here.
class Dude(models.Model):
name = models.CharField(blank=False, null=False, max_length=100, unique=True)
def phones(self):
# use reverse relation to get a list ofall recorded numbers
phone_numbers = self.phonenumber_set.values_list('number', flat=True)
phone_count = self.phonenumber_set.count()
return "This user have %s numbers recorded: %s" % (phone_count, ', '.join(phone_numbers))
def __unicode__(self):
return u"%s" % self.name
class PhoneType(models.Model):
name = models.CharField(blank=False, null=False, max_length=100, unique=True)
class PhoneNumber(models.Model):
dude = models.ForeignKey(Dude)
number = models.CharField(blank=False, null=False, max_length=100, unique=True)
type = models.ForeignKey(PhoneType)
strong> admin.py
admin.py
from django.contrib import admin
# Register your models here.
from TestingDjango.apps.one_to_many.models \
import Dude, PhoneNumber
class PhoneNumberInline(admin.TabularInline):
model = PhoneNumber
extra = 1
class DudeAdmin(admin.ModelAdmin):
pass
list_display = ('name', 'phones')
inlines = [ PhoneNumberInline, ]
class PhoneNumberAdmin(admin.ModelAdmin):
pass
list_display = ('dude', 'number')
admin.site.register(Dude, DudeAdmin)
当我添加新的Dude时,我只能选择现有的PhoneType。没有其他ForeignKey字段的+按钮。我怀疑这是一对多关系的二重奏。那么如何为PhoneType添加+按钮?
When I add new Dude I can only select existing PhoneType. There is no "+" button like for other ForeignKey fields. I suspect that that is duo to this one-to-many relationship. So how to add "+" button for PhoneType ?
推荐答案
您需要注册PhoneNumberAdmin才能使Django的管理员可以访问,那么它会给你'+'选项添加更多。
You will need to register PhoneNumberAdmin to make it accessible to Django's admin, then it will give you the '+' option to add more.
插入
admin.site.register(PhoneNumber, PhoneNumberAdmin)
在文件的底部
这篇关于如何添加“+”在Django Admin中使用一对多关系的按钮,如果该模型有ForeignKey?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文