Django管理:一个到一个模型类的编辑领域

问题描述:

我有两个型号,在models.py定义如下关系:Django管理:一个到一个模型类的编辑领域

class InnerModel(models.Model): 
    name = models.CharField(max_length=100) 

    def __str__(self): 
     return self.name 

class OuterModel(models.Model): 
    inner = models.OneToOneField(InnerModel) 

    def __str__(self): 
     return "OuterModel" 

我forms.py看起来是这样的:

class OuterModelForm(forms.ModelForm) 
    class Meta: 
     model = OuterModel 
     fields = ['inner'] 

我的admin.py形式如下:

class OuterModelAdmin(admin.ModelAdmin) 
    form = OuterModelForm 

admin.site.register(OuterModel, OuterModelAdmin) 

当我显示了管理页面,我可以看到InnerModel实例和姓名字段目前,但名称字段是一个空的下拉菜单,而不是可以编辑的空白文本字段。

如何更改InnerModel名称字段以便它可以由管理员编辑?

您需要使用inlinesdoc):

class InnerModelInline(admin.StackedInline): 
    model = InnerModel 

class OuterModelAdmin(admin.ModelAdmin): 
    inlines = [InnerModelInline] 

admin.site.register(OuterModel, OuterModelAdmin) 

类似的问题:here

+0

是否有这样做没有内联的方式? – user12066

+0

不是我知道的,没有。 – Siegmeyer

+0

谢谢 - 我应该在我的问题中指定无内联请求,我看到有很多涉及内联的SO问题。 – user12066