我正在使用 django-filter 包,我有很多布尔字段。有没有办法仅在字段为 True 时进行过滤?并展示所有其他可能性?
例如,如果我有 3 个字段:True、False、False... 渲染第一个字段等于 True 但与 de rest 无关的对象,不要将其视为 False。
模型.py
class Product(models.Model):
name = models.CharField(max_length=15)
is_dangerous = models.BooleanField()
is_secret = models.BooleanField()
is_active = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
过滤器.py
class SearchFilter(django_filters.FilterSet):
name = django_filters.CharFilter(lookup_expr='icontains')
class Meta:
model = Product
fields = ['name', 'is_dangerous', 'is_secret', 'is_active',]
filter_overrides = {
models.BooleanField: {
'filter_class': django_filters.BooleanFilter,
'extra': lambda f: {
'widget': forms.CheckboxInput,
},
},
}
Run Code Online (Sandbox Code Playgroud)
网址.py
url(r'^products/$', views.products, name='products')
Run Code Online (Sandbox Code Playgroud)
当我products/第一次进入时,我只看到所有布尔字段都为 False 的产品,我想看到所有产品。
提交表单后,我想重定向到一个特定的视图,传递一个 flag=True 以激活一个弹出窗口,如:
def view1(request):
if request.method == 'POST':
form = Form(request.POST)
if form.is_valid():
form.save()
return redirect('new_view') # Here I need to send flag=True
else:
form = Form()
return render(request, 'template.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在生产中部署一个 Django 项目,显然, DEBUG=False. 如何在开发环境中查看所有 Django 日志?
我已经配置了一个记录器,但我只能在文件中看到自定义日志。默认的在哪里?