【问题标题】:create model from form in django在 django 中从表单创建模型
【发布时间】:2013-04-16 13:37:46
【问题描述】:

有没有办法从 django(1.5) 中的表单创建模型? 就像从模型创建表单一样。

我的表格是

class QuoteForm(forms.Form):

    country = forms.ChoiceField(choices=COUNTRIES, required=False)
    street = forms.CharField(max_length=100, required=False)

我的模型具有完全相同的字段

【问题讨论】:

  • 我认为这不是 django 的流程。为什么不能先创建模型再使用模型表单?
  • 表单是在模型之前创建的,我现在使用的是经典模型 => 表单 + 自定义
  • Django 从表单生成模型几乎没有意义。 Django 使用 models.Model 类中的 Python 元类来处理创建数据库访问层。由于这对应用程序的表单没有可见性,因此将无法看到模型并且不会创建表。这就是为什么 Django 采取另一种方式的原因:模型是相​​对静态的,而表单是从它们派生而来的。
  • 此外,表单字段到模型字段的映射不是 1:1;表单字段可以是文本输入字段,但对应的模型字段可以是 CharFieldTextFieldIntegerFieldPositiveIntegerField 或其他几个字段,您必须添加一堆命名参数告诉 Django 制作哪一个的表单定义。

标签: python django-models django-forms


【解决方案1】:

我不相信使用 django 有一种简单的方法可以做到这一点。这不是执行此操作的内置代码,但您可以研究 django 如何从模型中生成表单并尝试以相反的方式进行。

这里是 django 代码:https://github.com/django/django/blob/master/django/forms/models.py

无论如何,我认为最好先创建模型,然后使用 ModelForm。

【讨论】:

  • 我想这是唯一的方法(到目前为止效果很好)
猜你喜欢
  • 2020-07-18
  • 2023-04-05
  • 1970-01-01
  • 2015-07-05
  • 2010-10-28
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2020-02-22
相关资源
最近更新 更多