1

我正在使用 Django FormView。我一直在寻找,但是如果提供了 PK,我找不到如何加载对象的示例。

目前我只是将 form_class 设置为 ModelView 表单。如果没有给出 pk,我想使用此视图加载一个空对象,或者如果通过 url 提供了一个 pk,则使用特定对象加载表单。

我不知道我是否需要将它加载到 get_form_kwargs 或 get_form 或其他地方。我真的很想要一个关于如何做到这一点的教程。我不想使用 CreateView 或 UpdateView,只有 FormView。

谁能指出我正确的方向?

4

1 回答 1

5

我会在get_form_kwargs. 那应该返回一个 kwargs 字典以传递到表单中。例如,如果pk在 url 中:

class MyAwesomeFormView(FormView):
    def get_form_kwargs(self):
        form_kwargs = super(MyAwesomeFormView, self).get_form_kwargs()
        if 'pk' in self.kwargs:
            form_kwargs['instance'] = models.AwesomeModel.objects.get(pk=int(self.kwargs['pk']))
        return form_kwargs
于 2013-09-18T02:41:02.870 回答