我有两个问题。
view
确认POST
接受ajax
请求(非一般POST
请求)我正在使用Form
并意识到如果我使用ajax
,我就无法使用django内置表单验证。
在这种情况下,我是否必须对javascript
中的所有字段进行自己的验证?我认为这是一个耗时且多余的事情。任何替代方案?
2. view
仅接受ajax
POST请求是否可以?我的意思是,我这样做:
def post(self, request, *args, **kwargs):
if request.is_ajax():
# return response
else:
# give HTTP404
这是不好的做法吗?一旦view
接受ajax
请求,它是否也总是接受一般的HTTP请求?
感谢。
答案 0 :(得分:0)
在单独的模板中生成表单HTML。当您使用ajax提交时,如果表单无效,即form.is_invalid(),则使用request.POST实例化表单并再次呈现模板。然后,将此呈现的HTML返回到Ajax函数并替换现有表单。
这样可以防止不得不乱用JS。