如何从保存的模型中使用 pk 提供成功 url?

ora*_*j33 3 python django url args

我用 CompanyCreateView 创建了一个新模型。用 保存后f.save(),我希望浏览器加载成功 url

    url(r'^comp/(?P<pk>\w+)/$', CompanyDetailView.as_view(), name="profile"),
Run Code Online (Sandbox Code Playgroud)

这是我的 CreateView。

class CompanyCreateView(CreateView):
model = Company
form_class = CompanyForm
success_url = "/comp/???pk???"

def form_valid(self, form):
    f = form.save(commit=False)
    f.submitter_id = 99         #dont know how to remove the submitter, its not set in the model
    f.save()

    return super(CreateView, self).form_valid(form)

def get_success_url(self, **kwargs):
        return reverse("profile", kwargs={'pk': self.request.pk})
Run Code Online (Sandbox Code Playgroud)

如何使用 args 参数返回pk

Hed*_*ide 9

def get_success_url(self, **kwargs):
    # obj = form.instance or self.object
    return reverse("profile", kwargs={'pk': self.object.pk})
Run Code Online (Sandbox Code Playgroud)

您期望请求对象上有一个主键,这是没有意义的。实例 (self.object) 是您应该从中检索主键的地方。