我在表格中的页面上有文章列表,我想通过单击按钮使用 ajax 对其进行排序。
我使用 dajaxice,它将对 ajax.py 的请求发送到example1方法,并在my_js_callback中获取响应 JSON 数据
HTML:
<script>
function my_js_callback(data) {
alert(data)
$("#article_view_tbody").html("")
for (i=0;i<data.length;i++)
article=data[i]
$("#article_view_tbody").append("<tr><td>" + data[i].title...) // here i need to set url for article edit
}
</script>
<button type="button" onclick="Dajaxice.content.example1(my_js_callback);">Click Me!</button>
<table>
<tbody id="article_view_tbody">
{% for article in articles %}
<tr>
<a class="article_link" href="{% url article_detail article.id %}">
{{ article.title }}
</a>
</td>
</tr> ...
ajax.py:
from django.utils import simplejson
from django.core import serializers
from dajaxice.decorators import dajaxice_register
from models import Article
def get_by_date_queryset():
return Article.objects.all().order_by('created_on')
@dajaxice_register
def example1(request):
""" Handling sorting requests """
queryset = get_by_date_queryset()
json_serializer = serializers.get_serializer("json")()
return json_serializer.serialize(queryset, ensure_ascii=False)
我无法在 JS 中传递 {% url %} 标签。那么这是一种在不附加 js 数据的情况下使用 ajax 重新加载 tbody 的方法吗?