- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
6天前关闭。
Improve this question
你能演示一下如何对网上商店中的商品进行排序吗?这样你就可以点击按钮,排序就发生了变化,例如:price,-price.而且到www.example.com是在课堂上,而不是在def上。views.py was in class, not in def.
views.py
class SectionView(View):
def get(self, request, *args, **kwargs):
sort_form = request.GET.getlist('sort')
products = Product.objects.filter(available=True)
if sort_form.is_valid():
needed_sort = sort_form.cleaned_data.get("sort_form")
if needed_sort == "ДТ":
products = products.order_by(
"created") # или updated в зависимости от того, что ты вкладываешь в понятие по дате
elif needed_sort == "ДЕД":
products = products.order_by("price")
elif needed_sort == "ДОД":
products = products.order_by("-price")
return render(
request=request,
template_name='main/index.html',
context={
'products':products,
}
)
form.py
class SortForm(forms.Form):
sort_form = forms.TypedChoiceField(label='Сортировать:', choices=[('ПУ', 'По умолчанию'), ('ДТ', 'По дате'), ('ДЕД', 'От дешевых к дорогим'), ('ДОД', 'От дорогих к дешевым')])
1条答案
按热度按时间tf7tbtn21#
你可以试试这样的方法:
对于这段代码,你需要在你的url参数中提供
ordering
(比如/shop/goods/?ordering=-price
)