[英]How do I return the result of a class-based view from another class-based view in Django?
當我提交某個CreateView
,我想繼續在另一個CreateView
創建另一個對象。 但是,當我嘗試
def get_success_url(self):
return FooView.as_view()(self.request, itempk = self.object.id)
我懂了
ContentNotRenderedError:必須先呈現響應內容,然后才能對其進行訪問。
我也試過
def get_success_url(self):
return render(FooView.as_view()(self.request, itempk = self.object.id))
這給了我
AttributeError:“ TemplateResponse”對象沒有屬性“ META”
我相當確定我會以錯誤的方式進行操作,並且之前我已經做過正確的操作,但是我很沮喪。 正確的方法是什么?
您不想調用視圖,而是想將用戶重定向到該視圖。 因此,只需使用redirect
功能:
from django.shortcuts import redirect
...
return redirect('foo_view_name', kwargs={'itempk': self.object.id})
既然您正在定義get_success_url
,我會說您只需要類似
def get_success_url(self):
# assuming that your FooView urlconf was named "foo_view"
return reverse('foo_view', kwargs={'itempk':self.object.id})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.