【发布时间】:2014-07-22 12:32:19
【问题描述】:
您好,我遇到了一个问题,我正在尝试制作它,以便在单击按钮时可以制作一个对象。我无法让它工作,因为由于某种原因它不会验证,但是如果我更改输入类型以提交它工作正常。
但问题是当我使用它作为提交页面重定向时,这违背了使用 AJAX 的目的。
我似乎找不到我想做的好教程,任何帮助或链接将不胜感激!
模型
class MemberRole(models.Model,get_fields):
name = models.CharField(max_length = 20)
表格
class MemberRoleForm(forms.ModelForm):
class Meta:
model = MemberRole
观看次数 此视图为成员角色模型构建表单
def add_member(request):
model_url = 'member-add'
rform = MemberRoleForm(instance=MemberRole())
return render_to_response('create_model.html', {'role_form': rform,'model_url': model_url,},context_instance=RequestContext(request))
这个ajax叫做view
@require_POST
def ajax(request):
data = request.POST.get("rolename","")
if request.method == 'POST':
rform = MemberRoleForm(request.POST, instance=MemberRole())
if rform.is_valid():
new_role = rform.save()
new_role.name = data
return HttpResponse("SuccessFully Saved")
else:
return HttpResponse("Error in saving")
模板
<div id="addRoleOnMemberForm">
<form id = "addrole" onsubmit= "return false;" method="POST">
{% csrf_token %}
{% for field in role_form %}
{{ field.errors }}
{{ field.label_tag }} {{ field }} //#id_name is in here
{% endfor %}
<input id="addrolebutton" type="button" onclick = "createit()" value="Add New Role"/>
</div>
{% for x in role_list %}
<div>
<p> This shows a role was made </p>
</div>
{% endfor %}
脚本
<script>
function createit(){
$.ajax({
type: "POST",
url:"ajax",
dataType:"json",
async: true,
data: {
csrfmiddlewaretoken: '{{ csrf_token }}',
rolename: $('#id_name').val()
},
});
}
</script>
【问题讨论】:
-
在 js 中发送表单我总是使用jQuery Form Plugin