尝试使用Django-filter
基于类的视图FilterView
,但我在模板中渲染过滤器时遇到问题。似乎过滤器不在上下文中。
DOCS:https://django-filter.readthedocs.io/en/master/guide/usage.html#generic-view-configuration
编辑:似乎永远不会调用视图的get(self...)
函数。我在get方法中设置了断点,但它并没有停在那里。
EDIT2:这真的很奇怪。调试器甚至不在线上停止:class UserFilterView(...)
filters.py
class UserProfileFilter(django_filters.FilterSet):
class Meta:
model = UserProfile
fields = ['budget','looking_for','user']
views.py
class UserFilterView(FilterView):
filterset_class = UserProfileFilter
template_name = 'frontend/userprofile_filter.html'
userprofile_filter.html
{% extends "frontend/base.html" %}
{% block content %}
<div class="filter">
{{ filter.form.as_p }}
</div>
<hr>
<div class="results">
</div>
{% endblock %}
但在浏览器中,我看到了:
...
<div class="filter">
</div>
...
urls.py
url('^search/$',views.UserFilterView.as_view(), name="user_filter")
无法找出问题所在。你有什么想法?
答案 0 :(得分:1)
由于在其他地方定义了get
方法,听起来你的CBV继承会遇到某种问题。我们可能需要查看更多代码以及所有内容的确切版本才能进行调试。
但是,我强烈建议您在此处写下3行视图来回避所有这些 - https://django-filter.readthedocs.io/en/master/guide/usage.html#the-view
CBV很适合采取一项非常简单的事情,并变成需要花费数小时调试的东西。