不安全的重定向到URL

时间:2018-10-05 22:26:54

标签: django

我正在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"),

我不知道为什么会收到此错误。.请提出一个主意.. !!

谢谢.. !!

2 个答案:

答案 0 :(得分:1)

Success_urlget_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属性。
  •