请帮助检查字段“选择”。
模型:
class Message(models.Model):
reciever = models.ForeignKey(
User,
related_name='recipient',
blank=False,
null=False,
)
theme = models.CharField(
'Тема сообщения',
max_length=200,
blank=True,
null=True,
)
text = models.TextField(
'Текст сообщения',
max_length=10000,
blank=False,
)
形式:
class CreateMessageForm(forms.ModelForm):
class Meta:
model = Message
fields = (
'reciever',
'theme',
'text',
)
def clean_reciever(self):
reciever = self.cleaned_data['reciever']
if reciever == '':
raise forms.ValidationError("Это обязательное поле")
return reciever
tpl:
<form id="createMessageForm"action="" method="POST">
{% csrf_token %}
<div class="cell input_outer">
<label class="label">{{ form.reciever.label }}</label>
{{ form.reciever }}
{{ form.reciever.errors }}
</div>
<div class="cell input_outer">
<label class="label">{{ form.theme.label }}</label>
{{ form.theme }}
{{ form.theme.errors }}
</div>
<div class="cell textarea_outer textarea_message">
<label class="label">{{ form.text.label }}</label>
{{ form.text }}
{{ form.text.errors }}
</div>
<div class="cell submit_outer">
<input class="btn btn-default" type="submit" value="Отправить" />
</div>
</form>
字段接收此下拉列表。我需要检查字段接收者的值。需要在未填写字段的收件人显示错误消息。
我的代码不起作用。即,显示错误消息。
从文档中:
表单子类中的clean_()方法–其中被替换为表单字段属性的名称。此方法执行特定于该特定属性的任何清理,而与该字段的类型无关。此方法未传递任何参数。您将需要在self.cleaned_data中查询该字段的值,并记住这时它将是一个Python对象,而不是以表单形式提交的原始字符串(它将在cleaned_data中,因为常规字段clean()方法,上面的数据已经清除了一次)。
因此,用户在接收方(请注意拼写)字段中输入的值不是self.cleaned_data [“ receiver”]中包含的值。您必须在行中修改您的支票
if receiver == '':
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句