Python Django如何使用modelform显示错误消息
我使用django modelform保存数据,Python Django如何使用modelform显示错误消息,python,django,Python,Django,我使用django modelform保存数据, 我使用ajax,所以它不会重定向到其他页面。 提交时,视图create\u post将处理它 但我有一个问题,如果我在电子邮件的存档中键入“abc”并提交。 我知道它不会通过验证,但它不会打印错误消息以让用户知道错误在哪里。 我如何编辑才能达到它? 请引导我。多谢各位 [编辑] 当我编辑此时,返回render(请求,“zh_tw/maininfo.html#5thpage”{form:'form'}) 现在,如果我在email字段中键入'abc'
我使用ajax,所以它不会重定向到其他页面。 提交时,视图
create\u post
将处理它
但我有一个问题,如果我在电子邮件的存档中键入“abc”并提交。我知道它不会通过验证,但它不会打印错误消息以让用户知道错误在哪里。
我如何编辑才能达到它? 请引导我。多谢各位 [编辑] 当我编辑此
时,返回render(请求,“zh_tw/maininfo.html#5thpage”{form:'form'})
现在,如果我在email字段中键入'abc',帖子就可以了。但当它呈现回此页面时,它将发出“错误”警报
它似乎在ajax中运行此部分:
错误:函数(ts){
警报('ERROR!!!');
window.location.reload();
},
模板/main.html
<script type="text/javascript">
$( document ).ready(function() {
$.ajaxSetup({
data: { csrfmiddlewaretoken: '{{ csrf_token }}' },
});
// Submit post on submit
$('#create_post').on('submit', function(event){
event.preventDefault();
var name = $("#name").val();
var email = $("#email").val();
var message = $("#message").val();
$.ajax({
url: '{% url 'core:create_post' %}',
data: { "name":name,"email":email,"message":message,},
type: 'POST',
async: false,
dataType: 'json',
error: function(ts){
alert('ERROR!!!');
window.location.reload();
},
success: function(dataArr){
if(dataArr == 2){
alert('success!');
window.location.reload();
}else{
alert('something wrong!');
window.location.reload();
}
}
});
});
});
</script>
<div class="section" id="contact">
<div class="message">
<form action="." method="POST" id="create_post">
{% csrf_token %}
{{ form.non_field_errors }}
{{ form }}
<div>
<input type="text" name="FirstName" id="name" placeholder="your name">
<input type="text" name="Email" id="email" placeholder="your email">
</div>
<textarea placeholder="talk?" name = "Message" id="message"></textarea>
<br>
<button type="submit" value="Submit" id="submit">submit</button>
</form>
</div>
</div>
如果您有表单错误和表单非字段错误,这将呈现表单错误和表单非字段错误
<div class="section" id="contact">
<div class="message">
<form action="." method="POST" id="create_post">
{% csrf_token %}
{{ form.non_field_errors }}
{{ form }}
<button type="submit" value="Submit" id="submit">submit</button>
</form>
</div>
</div>
你还没有展示你的全部观点。显然,如果表单无效,即存在错误,则需要返回它们,以便ajax可以显示它们。else语句之后会发生什么?post是200 OK,但它会向
错误:函数(ts){alert('s)发出警报操作失敗'); window.location.reload();},
part
<div class="section" id="contact">
<div class="message">
<form action="." method="POST" id="create_post">
{% csrf_token %}
{{ form.non_field_errors }}
{{ form }}
<button type="submit" value="Submit" id="submit">submit</button>
</form>
</div>
</div>
def create_post(request):
form = MessageForm(request.POST or None)
if form.is_valid():
obj = form.save(commit=False)
obj.ip = request.META['REMOTE_ADDR']
obj.save()
return render_to_response(request, template="your_template.html", context={form: 'form'})