django - 来自模型的初始表单数据 - Django

我正在尝试为我的模型创建一个编辑表单。我没有使用模型表单,因为根据模型类型,用户可以使用不同的表单。 (例如,其中一个表单有 Tinymce 小部件,而另一个没有。)

有没有什么方法可以使用模型设置表单(不是 ModelForm)的初始数据?

我尝试了以下但出现错误:

b = get_object_or_404(Business, user=request.user)
form = f(initial = b)

其中 fforms.Form 的子类

我收到的错误是 AttributeError: 'Business' object has no attribute 'get'

最佳答案

初始数据需要是一个 dict(或者至少有一个类似 dict 的接口(interface),这是 Django 模型所没有的)。

您可以使用 django.forms.models.model_to_dict 从您的模型构造一个 dict :

from django.forms.models import model_to_dict
b_as_dict = model_to_dict(b)

这与 Django 内置的 ModelForm 类用于设置其初始数据的函数相同,虽然您已指定不想使用 ModelForm找到某种允许您这样做的代码结构方式可能更方便。

https://stackoverflow.com/questions/10837691/

相关文章:

sql - 更新引用另一个表

haskell - 包含不同类型的列表

sql-server - 普通的 SQL Server 索引是否包含主键值?

assembly - 为什么我们可以在16位模式下使用eRx,而在32位模式下不能使用rRx?

php - 解析 SOAP 负载的 XML 错误 : Reserved XML Name

php - 从php中的日期检索日期,月份,年份

mysql - SQL select count for more than one like

sql - 如何根据 Oracle SQL 中的日期进行过滤

php - 如何从一个函数返回多个值

php - 检查多个字符串是否为空