擅长:python、mysql、java
<p>您正在混合模型字段和表单字段。在</p>
<p>首先需要定义表单字段,然后需要要求相应的模型字段将这些表单字段用于模型表单。在</p>
<p>见<a href="http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#specifying-the-form-field-for-a-model-field" rel="nofollow noreferrer">specifying-the-form-field-for-a-model-field documentation</a></p>
<p>基本上,您需要在model字段上定义一个名为formfield的方法</p>
<pre><code>def formfield(self, **kwargs):
# This is a fairly standard way to set up some defaults
# while letting the caller override them.
defaults = {'form_class': MyFormField}
defaults.update(kwargs)
return super(HandField, self).formfield(**defaults)
</code></pre>
<p>您在上面创建的字段有一个干净的方法,这是表单字段的要求,而不是<em>模型字段</em></p>
<p>所以,现在您应该定义一个表单字段(您已经定义的表单字段,除了从<code>forms.CharField</code>扩展而不是从<code>models.CharField</code>)扩展它之外,然后根据模型字段创建定义定义定义一个模型字段,并包括上面所述的方法。在</p>
<p>或者,简单地说,您可以选择定义一个表单字段,然后在模型表单中重写这个特定模型字段的默认表单字段。(在这种情况下,除非从该模型表单输入数据,否则不会进行验证)</p>