Django Inlining在添加对话框中显示其他字段

时间:2015-04-29 06:32:28

标签: django

我写了这个django 1.7.7代码:

class Color(models.Model):                                                          
    color = models.CharField(max_length=20, primary_key=True)                    
    def __unicode__(self):                                                          
        return str(self.color)                                                      

class Pen(models.Model):                                                            
    label = models.CharField(max_length=20, primary_key=True)                       
    color = models.ForeignKey('Color')

class PenAdmin(admin.ModelAdmin):                                                   
    pass                                                                         

class PenInline(admin.TabularInline):                                               
    model = Pen                                                                     

class ColorAdmin(admin.ModelAdmin):                                                 
    inlines = [PenInline,]                                                          

admin.site.register(Pen, PenAdmin)                                                  
admin.site.register(Color, ColorAdmin)

我想知道为什么当我点击管理页面中的添加颜色按钮时,它还会显示3个笔字段,如下图所示,以及如何从该特定对话框中删除它们。 我已经尝试了TabularInline和StackedInline,它们看起来完全相同。

enter image description here

1 个答案:

答案 0 :(得分:1)

InlineModelAdmin extra的默认值为3,因此您只需在extra = 0声明中更改PenInline

class PenInline(admin.TabularInline):                                               
    model = Pen
    extra = 0

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin.extra

查看https://stackoverflow.com/a/2228821/3033586

删除ColorAdmin声明并将最后一行更改为admin.site.register(Color)