Django:ajax 和请求
Posted
技术标签:
【中文标题】Django:ajax 和请求【英文标题】:Django: ajax & request 【发布时间】:2012-11-29 19:47:00 【问题描述】:我英语说得不好?但我在 Django 中有问题。 我有模型:
class Model1(models.Model):
model2 = models.ManyToManyField(Model2)
#...
class Model2(models.Model):
model3 = models.ForeignKey(Model3)
#...
class Model3(models.Model):
custom = models.CharField()
有观点
def simple(request, simple_id):
if request.method == 'POST':
if request.is_ajax():
if 'delete' in request.POST:
id3 = request.POST.get('delete', '')
Model1.objects.get(id = simple_id).model2.filter(model3__id = id3).delete()
也就是说,当提交一个 name = "delete" 的表单时,Ajax 已经删除了属于 Model2 的所有具有相同值的字段 "model3" 的对象 这是一个模板:
<form action="" method="post" id="simple">% csrf_token %
<input type="submit" name="delete" id="simple_delete" value="">
</form>
js传过来的值:
$('.deletebutton').click(function()
id = $(this).attr('data-id');
$('#simple_delete').attr('value', id);
$('#simple').ajaxForm();
$('#simple_delete').click();
);
嗯,分别插件jquery.form.js也连接了
问题是这样的 - 如果没有 ajax 的提交都是正常的,它可以工作......如果使用 Ajax 是一个错误,例如不正确的 int 值......如何通过 Ajax 使其工作?
【问题讨论】:
您是否尝试在服务器端打印该值。要查看通过 Ajax 提交的值是什么? 没有。怎么做?我是初学者 【参考方案1】:试试这个
$('.deletebutton').click(function()
id = $(this).attr('data-id');
$.ajax(function()
type:"POST",
url :"/your_url/",
data:
'id'=id,
).done(function(result)
alert('your json object result render by view :'+result)
)
我认为它有效, 我不明白你在做什么,即 $('#simple_delete').click(); 你能描述一下吗
在视图中
obj = Model1.objects.get(id = simple_id)
model2.objects.filter(model3__id = id3).delete()
我只是将单行查询分成两行,如果不工作 使用 .select_related()
【讨论】:
这是实现此目的的正确方法,我只想补充一点:您必须根据相对于删除视图的 urls.py 文件更改“/your_url/”。此外,如果该 url(如我所想)类似于“/delete/以上是关于Django:ajax 和请求的主要内容,如果未能解决你的问题,请参考以下文章