Django 成功\u来自FormView中创建的对象url的url

Django 成功\u来自FormView中创建的对象url的url,django,django-class-based-views,Django,Django Class Based Views,我有一个表单类视图,它在用户填写表单时创建一个对象(目录中的产品)。该对象是在视图的form\u有效方法中创建的。我希望视图通过FormView的“success\uURL”属性重定向到创建的对象url(产品url) 问题是我不知道如何在success_url方法中指定该url,因为在定义类本身时仍然没有创建对象。我尝试过对象的reverse\u lazy或get\u absolute\u url()方法,但同样的问题仍然存在 class ImageUpload(FormView): [...

我有一个表单类视图,它在用户填写表单时创建一个对象(目录中的产品)。该对象是在视图的form\u有效方法中创建的。我希望视图通过FormView的“success\uURL”属性重定向到创建的对象url(产品url)

问题是我不知道如何在success_url方法中指定该url,因为在定义类本身时仍然没有创建对象。我尝试过对象的reverse\u lazy或get\u absolute\u url()方法,但同样的问题仍然存在

class ImageUpload(FormView):
 [...]
 success_url = reverse_lazy('images:product', kwargs={'id': product.id })
 [...]
 def form_valid(self, form):
  [...]
  self.product = Product.objects.create(
        user=self.request.user, title=title)

在类级别上,没有
产品
,因此您不能在
success\u url
中使用
产品

您可以做的是覆盖
get\u success\u url
,从而确定url,如:

from django.urls import reverse

class ImageUpload(FormView):

    def get_success_url(self):
        return reverse('images:product', kwargs={'id': self.product.id })

    def form_valid(self, form):
        self.product = Product.objects.create(user=self.request.user, title=title)
        return super(ImageUpload, self).form_valid(form)
从django.url反向导入
类ImageUpload(FormView):
def get_success_url(自我):
返回反向('images:product',kwargs={'id':self.product.id})
def表单_有效(自身、表单):
self.product=product.objects.create(user=self.request.user,title=title)
返回超级(ImageUpload,self)。表格\u有效(表格)

事实上,默认情况下,
get\u success\u url
会获取
success\u url
属性并解析它。

在类级别上,没有
产品
,因此您不能在
success\u url
中使用
产品

您可以做的是覆盖
get\u success\u url
,从而确定url,如:

from django.urls import reverse

class ImageUpload(FormView):

    def get_success_url(self):
        return reverse('images:product', kwargs={'id': self.product.id })

    def form_valid(self, form):
        self.product = Product.objects.create(user=self.request.user, title=title)
        return super(ImageUpload, self).form_valid(form)
从django.url反向导入
类ImageUpload(FormView):
def get_success_url(自我):
返回反向('images:product',kwargs={'id':self.product.id})
def表单_有效(自身、表单):
self.product=product.objects.create(user=self.request.user,title=title)
返回超级(ImageUpload,self)。表格\u有效(表格)
事实上,默认情况下,
get\u success\u url
获取
success\u url
属性,并解析它