django - 姜戈。如果布尔值 true = 重定向
问题描述
我为目录中的对象设置了重定向。如果复选框中有标记,则表示重定向到该类别。但现在我已将所有对象重定向到一个类别。我究竟做错了什么?
在我的models.py
is_redirect = models.BooleanField('Redirect', default=False)
在我看来.py
def kv(request, kv_id):
kv = get_object_or_404(Objects, pk=kv_id)
response = redirect('/category/')
response.status_code = 301
context = {
'kv': kv
}
if Objects.objects.all().filter(is_redirect=True):
return response
else:
return render(request, 'listings/product-templates/listing-kv.html', context)
解决方案
如果至少存在一个重定向,则您在此处执行重定向Objects
。您应该处理kv
零件本身:
def kv(request, kv_id):
kv_obj = get_object_or_404(Objects, pk=kv_id)
if kv_obj.is_redirect:
return redirect('/category/', permanent=True)
else:
context = {
'kv': kv_obj
}
return render(request, 'listings/product-templates/listing-kv.html', context)
请注意,您可以使用permanent=True
,这可能更具自我解释性和声明性。
推荐阅读
- python - 如何将两个不同形状的数据框相乘
- node.js - Heroku App 回滚工作,但相同的代码不能 - 在本地完美运行
- terraform - 当地人depends_on - Terraform
- gradle-kotlin-dsl - 在 KMM 中定义全局配置变量
- reactjs - 反应路由器在网络中显示 404 错误
- python-3.x - 完整的 DataFrame 缺少步骤 python
- python-3.x - 请帮助解决python中的装饰器问题
- python - 使用 python 'aiohttp' 发送文件会产生“解析正文时出错”
- arrays - 如何从 C 中的 U8 数组中获取 U16 变量?
- angular - 如何在组件中使用 Promise 在视图中显示警报