python - 带有ajax的Django下拉过滤器?
问题描述
当用户选择下拉列表的值时,我需要更新我的模板。是否有可能通过 ajax 调用或类似方法来做到这一点?如果用户正在选择下拉列表的值,则该值将被发送到我的视图,并且我的页面中的内容将在不刷新页面的情况下更新,这将是完美的。
我尝试了不同的东西,但没有任何效果......欢迎任何建议。
这是我的缩短代码:
模型.py
class Author(models.Model):
id = models.IntegerField(primary_key=True)
author = models.CharField(max_length=50)
status = models.CharField(max_length=50)
[...]
视图.py
def authors(request):
authors = Author.objects.all()
if request.method="GET":
authors = Author.objects.filter(status = filter)
模板
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Choose status
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Staff</a>
<a class="dropdown-item" href="#">Admin</a>
[...]
</div>
</div>
{% for author in authors %}
{{author.author}}
{% endfor %}
解决方案
模板
<a class="dropdown-item" href="{% url 'admin' %}">Staff</a>
<a class="dropdown-item" href="{% url 'staff' %}">Admin</a>
网址.py
url(r'^admin/', authors_admin, name='admin'),
url(r'^staff/', authors_staff, name='staff'),
视图.py
def authors_admin(request):
authors = Author.objects.all()
if request.method="GET":
authors = Author.objects.filter(status = 'admin')
return render(request, 'template.html', {
'authors ': authors
})
def authors_staff(request):
authors = Author.objects.all()
if request.method="GET":
authors = Author.objects.filter(status = 'staff')
return render(request, 'template.html', {
'authors ': authors
})
推荐阅读
- python - 如何创建和调用 Python 类来计算体育博彩的凯利标准公式?
- css - Discord 小部件一种方式 CSS 转换
- flutter - 如何有条件地在颤动的列中显示列表?
- reactjs - webpack 中的 ./ publicPath 是做什么的
- c# - 在 ASP.Net Core Web 应用程序(引导程序)中向导航栏添加下拉菜单
- heroku - Heroku 调度器不允许我使用免费的测功机进行调度
- svn - 让 SVN 忘记之前的冲突解决决定?
- python - shell 排序比较的计数
- time-series - 错误无法将频率从 365 更改为 52
- python - 查找三个相等字符串的功能不起作用