创建后带参数的 get_success_url

use*_*631 3 django django-views django-class-based-views

我有 2 个部分,一个用于普通用户,一个用于管理员(与 Django 管理员无关)。例如,我有一个产品模型。

在模型中,我使用 get_absolute_url 为普通用户设置详细 url。

产品创建位于管理部分,success_url 需要转到新创建的产品详细信息视图。

我需要获取新的 pk 并使用 get_success_url。

  def get_success_url(self):
        return reverse_lazy('accounts:detail_company', kwargs={'pk': self.pk})
Run Code Online (Sandbox Code Playgroud)

会给我以下错误:

'AccountCompanyCreateView' object has no attribute 'pk'
Run Code Online (Sandbox Code Playgroud)

Ala*_*air 6

主键是 的属性self.object,而不是self(视图本身)。

def get_success_url(self):
    return reverse_lazy('accounts:detail_company', kwargs={'pk': self.object.pk})
Run Code Online (Sandbox Code Playgroud)