Сортировка с помощью радиокнопки не работает django
У меня есть веб-страница, как показано ниже, поэтому когда я нажимаю на любую 1 из моих радиокнопок, мой url покажет то, что я нажал, но моя таблица данных не будет сортироваться в порядке возрастания в соответствии с тем, что я выбрал, как мне исправить эту проблему и как мне сделать так, чтобы, когда я использую строку поиска и фильтрую страницу, она по-прежнему сортировалась в порядке возрастания?
views.py
@login_required()
def ViewMCO(request):
search_post = request.GET.get('q')
if (search_post is not None) and search_post:
allusername = Photo.objects.filter(Q(reception__icontains=search_post) | Q(partno__icontains=search_post) | Q(
Customername__icontains=search_post) | Q(mcoNum__icontains=search_post) | Q(status__icontains=search_post)
| Q(serialno__icontains=search_post))
if not allusername:
allusername = Photo.objects.all().order_by("-Datetime")
else:
allusername = Photo.objects.all().order_by("-Datetime") # The newest submitted log data will appear at the top
page = request.GET.get('page')
paginator = Paginator(allusername, 6)
try:
allusername = paginator.page(page)
except PageNotAnInteger:
allusername = paginator.page(1)
except EmptyPage:
allusername = paginator.page(paginator.num_pages)
context = {'allusername': allusername, 'query': search_post}
return render(request, 'ViewMCO.html', context)
ViewMCO.html
Если вы хотите сортировать данные кверисета, то это должно быть реализовано следующим образом. Если вы хотите добавить сортировку по убыванию или возрастанию, то вы можете сделать это, передав параметр order_by с '-' по убыванию, пустую строку по возрастанию, например '-id' по убыванию, 'id' по возрастанию.
@login_required()
def ViewMCO(request):
search_post = request.GET.get('q')
if (search_post is not None) and search_post:
allusername = Photo.objects.filter(Q(reception__icontains=search_post) | Q(partno__icontains=search_post) | Q(
Customername__icontains=search_post) | Q(mcoNum__icontains=search_post) | Q(status__icontains=search_post)
| Q(serialno__icontains=search_post))
if not allusername:
allusername = Photo.objects.all().order_by("-Datetime")
else:
allusername = Photo.objects.all().order_by("-Datetime") # The newest submitted log data will appear at the top
# example code starts
sort_type = request.GET.get('sortType')
allusername = allusername.order_by(sort_type)
# example code ends
page = request.GET.get('page')
paginator = Paginator(allusername, 6)
try:
allusername = paginator.page(page)
except PageNotAnInteger:
allusername = paginator.page(1)
except EmptyPage:
allusername = paginator.page(paginator.num_pages)
context = {'allusername': allusername, 'query': search_post}
return render(request, 'ViewMCO.html', context)