Python 如何在django中不使用{%for%}筛选查询集中的项
我想检查某个字段是否存在于具有多行的查询集中,结果如下 视图.pyPython 如何在django中不使用{%for%}筛选查询集中的项,python,django,Python,Django,我想检查某个字段是否存在于具有多行的查询集中,结果如下 视图.py def home(request): all_dress = Item.objects.filter(dress_active=True).order_by('-created_at') page = request.GET.get('page', 1) paginator = Paginator(all_dress, 12) try: dresss = paginator.pag
def home(request):
all_dress = Item.objects.filter(dress_active=True).order_by('-created_at')
page = request.GET.get('page', 1)
paginator = Paginator(all_dress, 12)
try:
dresss = paginator.page(page)
except PageNotAnInteger:
dresss = paginator.page(1)
except EmptyPage:
dresss = paginator.page(paginator.num_pages)
context = {
'dresss': dresss,
}
return render(request, 'fostania_web_app/home.html', context)
context\u processors.py我从中获取我的user\u Favs
查询
def include_user_favs(request, user_favs=None):
if request.user.is_anonymous:
pass
else:
user_favs = Favorite.objects.filter(user=request.user)
context = {
'user_favs': user_favs,
}
return (context)
下面是我的HTML代码:
{% if user.is_authenticated %}
{% if user_favs %}
{% for item in user_favs %}
{% if item.item == dress %}
<a href="{% url 'favorite_item' dress.id %}">
<img src="{% static 'img/star-yes.png' %}" title="مسح من الفساتين المفضلة"></a>
{% else %}
<a href="{% url 'favorite_item' dress.id %}">
<img src="{% static 'img/star_no.png' %}" title="إضافة إلى الفساتين المفضلة"></a>
{% endif %}
{% endfor %}
{% else %}
<a href="{% url 'favorite_item' dress.id %}">
<img src="{% static 'img/star_no.png' %}" title="إضافة إلى الفساتين المفضلة"></a>
{% endif %}
{% endif %}
{%if user.u经过身份验证%}
{%if用户_favs%}
{用户中项目的%u favs%}
{%if item.item==dress%}
{%else%}
{%endif%}
{%endfor%}
{%else%}
{%endif%}
{%endif%}
我只是得到了一个多个结果,因为它使用
for
循环检查每个项目,如果它找到了多个项目,它会给我不止一个答案不完全确定,但我假设您只筛选到数据库中的一个对象,但仍然收到多个
根据我的经验,这是因为分页和筛选器集有时很困难。
看看这个我真的不清楚问题出在哪里。您希望它只返回一行吗?如果有多行,它应该选择哪一行?是的,
user\u favs
给我很多行,我想检查这行中的每个人,并对其进行过滤。。但是如果不使用for循环,这是可能的吗?