我已经为 Django non-rel 设置了 Mongodb 作为后端。在模型中,我使用了 EmbeddedModelField 很多次,因为我喜欢非关系数据库的那些概念。但是,当涉及到渲染表单时。我卡住了,
我将 Form 创建为 Django 的正常形式,但 Django 在标题栏中显示类型错误 {model}。
有人知道如何在 Django non-rel 中为 EmbeddedModelField 创建表单字段吗?
最佳答案
自己实现一个formfield类就可以了。
- 在 forms.py 中实现 formfield
- 在 models.py 中指定您希望将哪种形式用于此模型
实现一个formfield是小菜一碟,你只需要在类中实现这两个方法:
to_python(self, value)
prepare_value(self, value)
如果您通过继承旧的表单域类来实现它,则可以使用附加在该表单域上的小部件。 (widget是指UI会通过模板系统呈现在网页上)
实现表单域的引用:How to use ListFields in Django's admin
并且您可以通过覆盖表单域的原始小部件来实现您自己的小部件。
例如,查看 django 文档:Django docs - widgets
关于Django non-rel - 如何在模型中使用 EmbeddedModelField 创建表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331203/