Django-Tteebeard在django表单中使用treadbeard字段形式



我正在尝试将TreeBeard内置的Form与django表单一起使用(不是admin(。我特别想用树胡子表单格式替换选择外键字段的呈现。我以为我可以通过在模型窗体中声明字段来做到这一点,但我没有成功。我是 django 的新手,所以我的理解是有限的。

这些是我 forms.py 的初始课程

MyCategories = movenodeform_factory(Category)
class CreatePost(ModelForm):
class Meta:
model = Post
fields = ['title', 'category', 'region', 'content', ]

我尝试通过在开始时声明类别字段来实现它,但这显然不是这样做的方法。该声明确实返回了一个 html 格式的类别列表,但我无法用它替换 Post 类别(这是一个外键(。

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', ]

解决方案就在我面前。我只需要使用 mk_dropdown_tree 创建一个列表并在 Choice Field 中使用它。我希望有一天这可能会帮助某人。

class CreatePost(ModelForm):
CHOICES = MoveNodeForm.mk_dropdown_tree(Category)
category = ChoiceField(choices=CHOICES)
class Meta:
model = Post
fields = ['title', 'category', 'region', 'content', ]

最新更新