Django-Tteebeard с использованием полевых форм treadbeard в формах django - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь использовать встроенную в 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', ]

1 Ответ

0 голосов
/ 31 августа 2018

Решение было прямо передо мной. Мне просто нужно было создать список с помощью mk_dropdown_tree и использовать его в ChoiceField. Я надеюсь, что это может кому-нибудь когда-нибудь помочь.

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

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