나는 많은 사진과 함께 찍은 데이터베이스가있는 데이터베이스를 가지고 있습니다.이 사이트의 사진 앨범 용입니다. 현재 한 페이지에 모든 사진이 있습니다. 나는 이것을 좋아한다. 이제 특정 국가 또는 도시의 모든 사진을 검색 할 수 있기를 원합니다. 내 디자인 위에는 두 개의 버튼 (국가 별 필터, 도시 별 필터)이 필요하며 필터가 사용되지 않을 때 아래에 표시된 모든 사진이 데이터베이스에 표시됩니다. 이 단추를 모든 국가와 도시의 드롭 다운 목록으로 지정합니다. 사용자가 국가 버튼을 클릭하면 드롭 다운이 호출됩니다 (부트 스트랩 사용). 그런 다음 원하는 국가를 클릭하고 도시에 따라 모든 사진을 볼 수 있습니다. 도시에 대한 드롭 다운을 클릭하면 해당 도시의 모든 사진이 호출됩니다. 국가를 선택한 경우 도시 드롭 다운은 해당 국가의 도시 만 표시합니다. 바로 지금, 나는 이것을하는 방법을 모른다. 나는 드롭 다운을 채울 수있다 - 그러나 나는 모든 사진 국가를 얻는다 - 반복을 의미한다. 어떻게해야합니까?Django 1.10 드롭 다운 메뉴를 사용하여 쿼리 필터링
def photo_album(request):
queryset_list = Pictures.objects.all()
query = request.GET.get("q")
if query:
queryset_list = queryset_list.filter(
Q(pictures__icontains=query) |
Q(picture_name__icontains=query) |
Q(country__icontains=query) |
Q(city__icontains=query)
).distinct()
paginator = Paginator(queryset_list, 20)
page_request_var = "page"
page = request.GET.get(page_request_var)
try:
queryset = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
queryset = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
queryset = paginator.page(paginator.num_pages)
context = {
"object_list": queryset,
"title": "List",
"page_request_var": page_request_var,
}
return render(request, "in_country_pics/photo_album.html", context)
내 HTML :
여기 내 views.py 인 HTML의
<div class="container">
<div class="photo-title">
<h1>Welcome to Our Photo Album</h1>
</div>
<div class="col-sm-12 photoalbum-buttons">
<form method="GET" action="" class="row">
<div class="col-sm-6">
<div class="input-group">
<input class="form-control" type="text" name="q" placeholder="Search Posts" value="{{ request.GET.q }}"/>
<span class="input-group-btn">
<button class="btn btn-default" type="submit">Search <i class="fa fa-search"></i></button>
</span>
</div>
</div>
</form>
<div class="dropdown form-actions">
<button class="btn btn-primary gradient dropdown-toggle" type="button" data-toggle="dropdown">
<i class="fa fa-search"></i>
By Country
</button>
<ul class="dropdown-menu">
{% for obj in object_list %}
<li ><a href="#">{{ obj.country }}</a></li>
{% endfor %}
</ul>
</div>
<div class="dropdown form-actions">
<button class="btn btn-primary gradient dropdown-toggle" type="button" data-toggle="dropdown">
<i class="fa fa-search"></i>
By City
</button>
<ul class="dropdown-menu">
{% for obj in object_list %}
<li><a href="#">{{ obj.city }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<p id="photo-separator">______________________________________________</p>
<div class="row photo-post">
{% for obj in object_list %}
<div class="col-sm-3">
<div class="thumbnail">
<img src="{{ obj.pictures.url }}" class="img-responsive"/>
<div class="caption photo-description">
<p class="photo-location">{{obj.city}}, {{obj.country}}</p>
<p class="photo-time">Taken: Aug 04, 2016</p>
<p><a href="" class="btn btn-primary" type="button">View</a></p>
</div>
</div>
</div>
{% if forloop.counter|divisibleby:4 %}
<div class='col-sm-12'><hr/></div></div><div></div><div class='row'>
{% endif %}
{% endfor %}
</div>
</div>
{% endblock %}
, 나는 처음 검색 창 작동하지만, 텍스트로합니다. 아래에 간단한 부트 스트랩 드롭 다운 목록이 있습니다. 아약스 또는 jquery를 사용하는 것이 가장 좋습니다.