python - 如何使按钮单击更改 django order_by?
问题描述
这是我的views.py 函数。
def publications(request):
if request.method == 'POST':
publications = UserPublications.objects.all().order_by('status_date')
else:
publications = UserPublications.objects.all().order_by('contributors')
context = {'publications': publications}
return render(request, 'users/publications.html', context)
这是我的publications.html:
<button type="submit" method="POST">Filter By Date</button>
<ol class="text">
{% for publication in publications %}
<div>{{publication.text}}</div>
{% endfor %}
</ol>
我希望单击一个按钮,如果有人单击它,它会更改为按日期过滤,而不是按贡献者(我的模型的两个属性)。我该怎么做?现在我没有错误,但是当我点击按钮时,它并没有更新我的对象的排序。提前致谢。
解决方案
该按钮需要链接到 a <form>
,因此:
<form method="POST" action="{% url 'view-name-for-publications' %}">
<button type="submit">Filter By Date</button>
</form>
然而,使用 HTTP 请求方法来确定是否按日期排序并没有多大意义。通常,您使用查询字符串[wiki]发出 GET 请求,以指定它将在哪个字段上进行排序。
推荐阅读
- java - 使用来自自定义 JR 数据源的数据创建图表
- html - 防止谷歌浏览器打破双引号并将括号打开到新行?
- jquery - jQuery:仅在您第一次进入网站时(或在硬刷新时)运行介绍类
- drake - 刚体工厂 - 状态与运动学和加速度
- java - 如何正确删除 Java 中复合布尔值中的冗余?
- java - for循环内列表的空间复杂度是多少?
- android - 如果根 CA 在 Android 中过期会发生什么
- python - 数组中数字的Python总和,忽略特定数字的部分
- scala - 当没有 S 的隐式编码器可用时,如何获得编码器[Seq[S]]?
- visual-studio - Visual Studio 工具箱中的 Microsoft 报表查看器控件