DjangotteBeard在Django窗体中使用treadbeard字段窗体

2024-04-25 01:57:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将TreeBeard的内置表单与django表单(而不是admin)一起使用。我特别想用TreeBeard表单格式替换selectforeignkey字段的呈现。我以为可以通过在模型表单中声明字段来实现这一点,但没有成功。我刚来django,所以我的理解力有限。你知道吗

这是我在学校的第一节课表单.py你知道吗

MyCategories = movenodeform_factory(Category)

class CreatePost(ModelForm):

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

我尝试在开始时声明category字段来实现它,但这显然不是实现它的方法。声明确实返回了一个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', ]

Tags: 声明表单fieldsmodeltitlecontentpostregion
1条回答
网友
1楼 · 发布于 2024-04-25 01:57:10

解决方案就在我眼前。我只需要使用mk\u下拉树创建一个列表,并在ChoiceField中使用它。我希望有一天这会对别人有所帮助。你知道吗

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

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

相关问题 更多 >