【发布时间】:2014-05-06 03:50:07
【问题描述】:
我不确定这是设计错误还是我做错了什么。我在 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)
)
【问题讨论】:
-
你能说明你是如何定义你的表单的吗?
-
您的意思是单 my_custom_field 和双 my__custom__field 吗?第二个是错误的。
-
@JuanMiguelTaboada 格式如上帖所示。单词之间有一个下划线,但有多个单词。
-
@alecxe 更新了表单。
-
@bmeyer71 据我了解,您应该有一个名为
clean_active_listing_expiry_date的方法,而不仅仅是active_listing_expiry_date。
标签: django django-models