我在Django中创建了一个queryset来按位置进行过滤
1)如果未键入位置,则页面应显示所有用户
2)如果键入的位置与另一个用户匹配,则只应显示该用户
我在queryset上运行一个forloop,用与过滤器匹配的用户填充页面
现在,页面返回同一个用户两次,没有显示任何其他用户
有人能诊断出哪里出了问题吗
我省略了不相关的代码
过滤器.py
import django_filters
from .models import Profile
class ProfileFilter(django_filters.FilterSet):
class Meta:
model = Profile
fields = {
'city': ['iexact'],
}
视图.py
@login_required
def profile_filter(request):
f = ProfileFilter(request.GET, queryset=Profile.objects.all())
return render(request, 'profile/profile_filter.html', {'filter': f})
筛选器.html
{% for profile in filter.qs %}
<img class="img-thumbnail account-img center" src="{{ MEDIA_URL }}{{ user.profile.image.url }}" width="100" class="img-fluid mx-auto d-block" alt="Card image cap">
<div class="card-body padding-success">
<h3 class="marker">{{ user.first_name }} {{ user.last_name }}</h3>
<h3 class="marker">City: {{ user.profile.city }}</h3>
<br><button type="submit" class="small" value="submit" href="{% url 'register' %}">Message?</button>
</div>
</div>
{% endfor %}
在for循环中根本不引用过滤器中的概要文件;使用
user
,它会自动填充当前登录用户的值。应该使用for循环中定义的变量profile
相关问题 更多 >
编程相关推荐