相关疑难解决方法(0)

如何使用UpdateView更新Django模型?

我正在尝试使用基于类的通用视图UpdateView更新Django中的模型.

我阅读了使用基于类的UpdateView在Django中更新用户模型的页面,试着让我开始,但是我收到一个错误'WSGIRequest'对象没有属性'id'

我是Django的新面孔,所以如果我做一些愚蠢的事情,请原谅.

//urls.py

url(r'^portfolios/update/(?P<id>\d+)/$',PortfoliosUpdateView.as_view()),
Run Code Online (Sandbox Code Playgroud)

//views.py

class PortfoliosUpdateView(UpdateView):
    form_class = PortfoliosCreateForm
    model = Portfolios
    template_name = 'portfolios/create.html'

    def get(self, request, **kwargs):
        self.object = Portfolios.objects.get(id=self.request.id)
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        context = self.get_context_data(object=self.object, form=form)
        return self.render_to_response(context)

    def get_object(self, queryset=None):
        obj = Portfolios.objects.get(id=self.request.id)
        return obj
Run Code Online (Sandbox Code Playgroud)

它主要只是最初发布的代码的修改版本,但我认为它有用.我知道我正在尝试检索作为GET参数传递的id,但在请求变量中似乎没有.我是以错误的方式来做这件事的吗?

谢谢

编辑:我想我修好了,但这可能是错的:我换了线

self.object = Portfolios.objects.get(id=self.request.id)
obj = Portfolios.objects.get(id=self.request.id)
Run Code Online (Sandbox Code Playgroud)

self.object = Portfolios.objects.get(id=self.kwargs['id'])
obj = Portfolios.objects.get(id=self.kwargs['id'])
Run Code Online (Sandbox Code Playgroud)

我错了.

django view

20
推荐指数
2
解决办法
5万
查看次数

标签 统计

django ×1

view ×1