![](/img/trans.png)
[英]how can i apply price search between the range like(search between value1-value2) in django admin
[英]how can i search in django for multiple values like the ( werkstoffbezeichnung and the werkstoffnummer )
我制作的这条鳕鱼只适用于一个值,当我尝试添加另一个值时它停止工作。 我该如何解决?
def search_post(request):
if request.method == "POST":
searched = request.POST.get('searched')
posts = Post.objects.filter(werkstoffnummer=searched)
posts = Post.objects.filter(werkstoffbezeichnung=searched)
return render(request, 'Blog/search_post.html', {'searched': searched, 'posts': posts})
else:
return render(request, 'Blog/search_post.html', {})
通过这种方式搜索, posts
将设置为您定义的最后一个QuerySet
。
您可以使用Q
对象来创建一个搜索两个字段的QuerySet
:
from django.db.models import Q
def search_post(request):
if request.method == 'POST':
searched = request.POST.get('searched')
posts = Post.objects.filter(
Q(werkstoffnummer=searched) | Q(werkstoffbezeichnung=searched)
)
return render(request, 'Blog/search_post.html', {'searched': searched, 'posts': posts})
else:
return render(request, 'Blog/search_post.html', {})
这种行为的原因是posts
在调用posts = Post.objects.filter(werkstoffbezeichnung=searched)
中被覆盖,因此您只看到 1 个结果。 这是一种方法:
def search_post(request):
if request.method == "POST":
searched = request.POST.get('searched')
posts = Post.objects.filter(werkstoffnummer=searched) | Post.objects.filter(werkstoffbezeichnung=searched)
return render(request, 'Blog/search_post.html', {'searched': searched, 'posts': posts})
else:
return render(request, 'Blog/search_post.html', {})
您可以参考this了解更多详情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.