我是Django新手,需要一些帮助。我的数据库条目显示在模板上(6个条目)。我知道要对数据库对象进行排序,您需要在视图.py. 我想让这个功能在同一个模板链接。到目前为止,我唯一能想到的就是创建一个新的视图、新的url模式和新的模板来显示这个新的排序。我不想仅仅为了排序而写30页。我认为我需要将上面的代码行分配给一个变量(请参见下面的product d
和product_a
)。然后我会在模板中调用该变量,但我不确定如何替换现有的数据库项列表。简而言之:如何创建可单击的链接,以便在同一模板中对数据库对象进行排序。这已经在管理员中完成了。谢谢您!在
我的视图.py公司名称:
from django.http import Http404, HttpRequest
from django.contrib import messages
from vendor_db.models import Itemo
from django.db.models import Q
from django.shortcuts import HttpResponse, HttpResponseRedirect,
render_to_response, render, redirect, get_object_or_404
def index(request):
return render(request, 'vendor_db/index.html')
def vendors(request):
items = Itemo.objects.all()
var_2 = request.GET.get("q")
product_d = Itemo.objects.all().order_by('-Product_Name')
product_a = Itemo.objects.all().order_by('Product_Name')
if var_2:
items = items.filter(Vendor_Name__icontains=var_2)
context = {'items': items,
'product_d' :product_d,
'product_a' :product_a,
}
return render(request, 'vendor_db/vendors.html', context)
我的模板(它已经以任意顺序显示我的所有数据库对象):
^{pr2}$编辑 虽然我确信下面的两个答案可以解决问题,但我无法理解(我自己的错误)。我将数据库条目放在一个表中,并使用javascript library来更改排序顺序,只需单击列标题。你可以看到我问的问题和代码here
您可以像您所说的那样使用带有变量的表单,将表单传递回同一视图并从中获取sort选项,然后动态地或使用if语句为产品项创建排序查询。然后重新刷新页面。这意味着只需要一个视图。在
或者你可能对一个名为django-tables2的应用程序感兴趣,它使你能够呈现一个很好的表,然后可以通过点击箭头进行排序。在
在你的模型.py班级使用
相关问题 更多 >
编程相关推荐