【发布时间】:2015-04-21 08:26:34
【问题描述】:
我正在使用 Django。我为删除按钮创建了一个功能。它工作正常,但问题是:有一个模板在两个地方共享(一个用于 url:/employer/job/edit,另一个用于vendor/job/edit)模板对于两者都是相同的。我的代码如下,适用于/employer/job/edit,但不适用于vendor/job/edit。
按钮代码是:
<a style="cursor:pointer;" class="delete"
data-pk="{{ i.id }}" data-appname="employer" data-modelname="office">
<i class="fa fa-times font-18 iconcolor pt3 float-r" ></i>
</a>
JQUERY 是:
$('.delete').click(function() {
appname = $(this).data('appname');
modelname = $(this).data('modelname');
pk = $(this).data('pk');
delete_this = $(this);
$.ajax({
url: "/delete_button/" + appname + "/" + modelname + "/" + pk + "/",
type: "DELETE",
success: function() {
// Remove the HTML Element which represents you data
delete_this.parent().parent().parent().parent().remove();
$('#'+pk).remove();
location.reload(true);
}
});
});
我在 view.py 中写的函数是:
def delete_data(request, app_name, model_name, pk):
try:
model_name = get_model(app_name, model_name)
if request.method=='DELETE':
model_name.objects.get(id=pk).delete()
return HttpResponse('deleted', status=200)
except Exception, e:
return HttpResponse('error', status=500)
怎么了,我在做。请帮帮我!
【问题讨论】:
-
在我使用 pk=i.id 时,有什么方法可以在按钮代码中获取 app-name 和 module-name 吗?我认为如果有这样的方法,那么问题可以解决。
-
我在这里有点困惑。您在两个模板中使用相同的按钮吗?
-
是的.. 确切地说,实际上模板是相同的,两者都是共享的。 @AmalSurendran
-
那么按钮中的应用名称保持不变对吗?我想价值应该是雇主才能使代码正常工作。
-
是的。值是雇主,它与 url 一起工作正常:雇主/工作/编辑,但它不适用于 vendor.job/edit。 @AmalSurendran