0

TreeBeardのビルトインフォームをdjangoフォーム(管理者ではない)で使用しようとしています。特に、Select ForeignKey フィールドのレンダリングを TreeBeard フォーム形式に置き換えたいと考えていました。ModelForm でフィールドを宣言することでこれを行うことができると思っていましたが、うまくいきませんでした。私はdjangoが初めてなので、理解が限られています。

これらは私のforms.pyの私の最初のクラスです

MyCategories = movenodeform_factory(Category)

class CreatePost(ModelForm):

    class Meta:
        model = Post
        fields = ['title', 'category', 'region', 'content', ]

最初にカテゴリフィールドを宣言して実装しようとしましたが、これは明らかにそれを行う方法ではありません。宣言は HTML 形式のカテゴリ リストを返しますが、Post カテゴリ (ForeignKey) をそれで置き換えることはできません。

class CreatePost(ModelForm):
category = movenodeform_factory(Category)

class Meta:
    model = Post
    fields = ['title', 'category', 'region', 'content', ]

TreeBeard フォームを使用する理由は、カテゴリ階層に従ってフィールドをネストする方法のためです。

解決済み:これは、私が思っていたよりもはるかに簡単になりました。

class CreatePost(ModelForm):
CHOICES = MoveNodeForm.mk_dropdown_tree(Category)
category = ChoiceField(choices=CHOICES)

class Meta:
    model = Post
    fields = ['title', 'category', 'region', 'content', ]
4

1 に答える 1