![](/img/trans.png)
[英]Django CBV - How to test get_context_data with uuid in url?
[英]Django CBV : get() and get_context_data()
我想獲取有關get()
和get_context_data()
類的一些指標,因為我遇到了問題,並且試圖理解原因。
我有一個Django DetailView
,可以顯示帶有多個查詢集的一些統計信息。 在同一個類中,我有一個query string
,其中顯示了來自get queryset的結果。
我的代碼如下所示:
class StatsView(DetailView):
""" Create statistics pageview """
template_name = 'app/stats.html'
def get(self, request):
return render(request, self.template_name, context)
def set_if_not_none(self, mapping, key, value):
if value is not None:
if len(value) != 0:
mapping[key] = value
def get_context_data(self, **kwargs):
return context_data
這樣, get_context_data()
函數不起作用,但是當我在注釋中設置get()
時,它可以正常工作。 我認為自己有一個小誤會。
也許我沒有使用好的django通用顯示視圖,或者不可能在同一類中一起使用get()
和get_context_data()
?
謝謝
我閱讀了Django文檔,但我想向您解釋
編輯:
我試圖將查詢集從get()
方法傳遞給get_context_data()
。 然后我刪除了get()
方法,通過TemplateView
更改了DetailView
,它僅與get_context_data()
。 但是,如何在沒有get()
方法的情況下添加“骨架”呢?
我正在嘗試將查詢集從get()方法傳遞給get_context_data()
class StatsView(DetailView):
""" Create statistics pageview """
template_name = 'app/stats.html'
def get(self, request, *args, **kwargs):
queryset = SampleModel.objects.all()
return render(request, self.template_name, context=self.get_context_data(queryset=queryset))
def set_if_not_none(self, mapping, key, value):
if value is not None:
if len(value) != 0:
mapping[key] = value
def get_context_data(self, **kwargs): qs = kwargs.get('queryset') # do something
如果您重寫的get_context_data()
方法,建議將super()
方法調用為
class StatsView(DetailView):
# your code
def get_context_data(self, **kwargs): data = super(StatsView, self).get_context_data(**kwargs) data.update({"foo": "bar"}) return data
我想獲得一些有關
get()
和get_context_data()
我認為這已經很好回答了, 何時在Django中使用get,get_queryset,get_context_data?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.