簡體   English   中英

如何從Django中另一個基於類的視圖中返回基於類的視圖的結果?

[英]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})

cf. https://docs.djangoproject.com/en/dev/ref/urlresolvers/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM