2016-08-05 4 views
0

一対一のモデルクラスの編集フィールド:ジャンゴ管理者:私はmodels.pyで定義された次のような関係を持つ2つのモデルを持っている

私forms.pyはこのようになります
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" 

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の名前フィールドを変更して、管理者が編集できるようにするにはどうすればよいですか?

答えて

1

あなたは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

関連する問題