我正在django上创建一个类视图,但出现此错误:
Unsafe redirect to URL with protocol 'products'
这是我在视图上的代码:
class CreateProduct(CreateView):
model = Product
form_class = ProductForm
template_name = "administrador/create_product.html"
success_url = "products:admin_productos"
这是我的网址:
url(r'^create_product$', CreateProduct.as_view(), name="create_product"),
我不知道为什么会收到此错误。.请提出一个主意.. !!
谢谢.. !!
答案 0 :(得分:1)
Success_url
在get_success_url
内部运行CreateView
方法,该方法应通过反向查找返回url。这可以通过将适当的视图传递给reverse()
来实现。
success_url = reverse('products:admin_productos')
答案 1 :(得分:0)
您的成功URL无效-您需要传递一个实际的URL,而不是一个URL的名称-即,您需要首先reverse
使用该名称。更改为:
from django.urls import reverse_lazy
class CreateProduct(CreateView):
success_url = reverse_lazy("products:admin_productos")
请参阅documentation,以了解为什么reverse_lazy()
而不是reverse()
的适用之处
当您需要在加载项目的URLConf之前使用URL反转时,它很有用。需要此功能的一些常见情况是:
- 提供反向URL作为基于类的通用视图的url属性。