我正在尝试将 TreeBeard 的内置表单与 django 表单(不是管理员)一起使用。我特别想用 TreeBeard 表单格式替换 Select ForeignKey 字段的呈现。我以为我可以通过在我的 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', ]