我想使用基於類的通用視圖UpdateView更新Django中的模型。如何使用UpdateView更新Django模型?
我讀Updating User model in Django with class based UpdateView頁面,試圖讓我開始,但我得到一個錯誤「WSGIRequest」對象有沒有屬性「ID」
我是一個新面孔來Django的,所以請原諒如果我在做一些愚蠢的事情。
//urls.py
url(r'^portfolios/update/(?P<id>\d+)/$',PortfoliosUpdateView.as_view()),
//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
它大多隻是代碼的修改版本最初發布,但我認爲它會工作。我知道我試圖檢索作爲GET參數傳遞的id,但這似乎並不通過請求變量。我是否以這種錯誤的方式去做?
感謝
編輯:我想我固定它,但這可能是錯誤的: 我改了行
self.object = Portfolios.objects.get(id=self.request.id)
obj = Portfolios.objects.get(id=self.request.id)
到
self.object = Portfolios.objects.get(id=self.kwargs['id'])
obj = Portfolios.objects.get(id=self.kwargs['id'])
我可能是錯的。
您的更新確實修復了原來的錯誤。我不明白爲什麼你需要重寫''get''方法,看起來這就是''UpdateView''所做的。 – Raekkeri 2012-02-14 06:17:11