下面,我有div
,负责显示错误,警告和成功消息。但我只知道如何在成功案例中使用它。
这是我的 views.py
def registration(request):
form = PersonForm(request.POST or None)
if form.is_valid():
save_it = form.save(commit=False)
save_it.save()
messages.success(request, 'Your form was saved')
<if checkbox not checked> <<< is this possible ?
messages.error(request, 'You must accept the terms to register')
return render(request, 'provisioning/registration.html', {'form':form,})
这是我的 registration.py
<div>
...
{% if messages %}
{% for message in messages %}
<div {% if message.tags %} class="alert alert-{{ message.tags }}" {% endif %} alert-danger fade in">
<button data-dismiss="alert" class="close close-sm" type="button">
<i class="fa fa-times"></i>
</button>
<strong>{{ message.tags }} | </strong> {{message}}
</div>
{% endfor %}
{% endif %}
</div>
我的问题是:如何在我的html页面中验证我的字段并显示一切是否正常?
例如,对于使用条款的协议有checkbox
,对吧?如果用户没有检查过,如何使用这些消息告诉用户他需要接受使用条款进行注册。
答案 0 :(得分:1)
如何使用clean方法?
def clean_agreement(self):
data = self.cleaned_data
if not data['agreement']:
msg = u"You have to agree with the terms and conditions."
self._errors["agreement"] = self.error_class([msg])
return False
return True
答案 1 :(得分:0)
为什么你不使用JavaScript来显示你的消息?它非常优雅,有更多的性能!你可以使用这样的函数:
var showMessage = function(element, msg, where) {
var div = $('<div class="your_classname"><h3>' +msg+ '</h3>(' +
gettext('click to close') + ')</div>');
div.click(function(event) {
$(".your_class_name").fadeOut("fast", function() { $(this).remove(); });
});
var where = where || 'parent';
if (where == 'parent'){
element.parent().append(div);
}
else {
element.after(div);
}
div.fadeIn("fast");
};