我有一个获取一些数据的函数。结果例如:
sites = Site.objects.filter(is_active=False)
在django admin.py中按下按钮后运行函数:
def my_function(self, request):
sites = Site.objects.filter(is_active=False)
return HttpResponseRedirect(request.META["HTTP_REFERER"], {'result': sites})
def get_urls(self):
urls = super(ConfigAdmin, self).get_urls()
my_urls = [
url(r'^my_function/$', self.export),
]
return my_urls + urls
这是我的按钮代码:
<input type="submit" onclick="location.href='my_function/'" value="{% trans 'My_function' %}" />
我想将结果放到jquery警告框中。我怎样才能做到这一点?
答案 0 :(得分:1)
首先,您的视图需要返回一个有效的json对象,以便jquery回调可以处理它。 Django有一个内置的JsonResponse
,我们可以使用它来序列化我们的数据。
from django.http import JsonResponse
def my_function(self, request):
sites = Site.objects.filter(is_active=False).values_list('name', flat=True)
return JsonResponse({'result': sites}, safe=False)
现在,我们需要在页面上用jquery显示它。您可以通过将单击回调绑定到链接并提醒视图结果来执行此操作。
<a href="#" id="my-button">{% trans 'My_function' %}</a>
<script>
$('#my-button').click(function(){
$.get('my_function/', function(data){
alert(data.result);
});
});
</script>
答案 1 :(得分:0)
我的admin.py:
def my_function(self, request):
sites = Site.objects.filter(is_active=False)
if request.is_ajax():
message = sites
return HttpResponse(message)
else:
return HttpResponseRedirect(request.META["HTTP_REFERER"])
我的.js文件:
$('#content > p > input[type="submit"]:nth-child(2)').click(function() {
$.get("my_function/", function (data) {
alert(data);
});
});
我的模板文件:
<input type="submit" onclick="location.href='my_function/'" value="{% trans 'My_function' %}" />
可以吗?它显示带有我函数变量的警告框。