我不确定这是一个错误,是设计还是我做错了。我在1.6.2和1.6.4上遇到过这个问题
我的模型中有一些字段,如:
my_custom_field = models.CharField()
在我的forms.py中,我有:
def clean_my_custom_field():
它没有被调用。在字段名称中有多个下划线似乎有问题。我有几个在名称中有2或3个下划线。我已经改变一个使用单个下划线并且它有效。
我已经开始考虑缩短名称,但是想知道是否有人遇到过这个问题并且有一个解决方法。保留描述性名称会很好。
或者它实际上是一个错误?
更新:
表单设置相当基本。需要注意的一点是,长字段名称似乎在Admin中有效,但不在前端形式。
class MyBaseForm(forms.ModelForm):
class Meta:
model = MyModel
fields = "__all__"
def clean_active_listing_expiry_date(self):
print "You are HERE!"
"Do something else here"
更新:
class MyModel(models.Model):
... other fields listed before and after of course.
active_listing_expiry_date = models.DateTimeField(
verbose_name='Active Expiry Date',
help_text="Date format: YYYY-MM-DD",
blank=True,
null=True
)
更新:
views.py
def residential_add(request, ptype='Residential', template_name='properties/add_residential.html'):
if request.method == 'POST':
property_form = ResidentialPropertyForm(request.POST)
if property_form.is_valid():
print "*" * 60
print "FORM IS VALID"
else:
property_form = ResidentialPropertyForm()
return render_to_response(
template_name,
{
'property': property_form,
},
context_instance=RequestContext(request)
)
答案 0 :(得分:0)
不幸的是,我无法按照@schillingt的建议在全新安装上重现问题所以我决定从头开始创建表单,查看和验证代码。不确定第一次错过了什么,但此时此问题似乎已得到解决。
感谢那些提供帮助的人。