2017-05-27 73 views
1

有了這個urls.py片斷使用:如何顯示模板內當前對象基於類的FormView

url(r'^storageitem/(?P<pk>[\w]+)/addtransaction/$', login_required(
    StorageItemTransactionAddView.as_view()), 
    name='storage_item_transaction'), 

我想知道什麼是使物體beihind PK裏面提供的模板,以顯示正確的方法它如與

<h1>{{ object.name }}</h1> 

我試圖配置查詢設置

... 
queryset = StorageItem.objects.get 
    pk=get_from_kwargs()['object']) 

def get_form_kwargs(self): 
    kwargs = super(ItemCreate, self).get_form_kwargs() 
    kwargs.update({ 
     'object' : self.kwargs['pk'] 
    }) 
    return kwargs 

,但該方法並不在這一點上訪問能夠。所以,我想知道一個人如何能做到這一點的正確方法?所有我需要的是像

self.object = StorageItem.objects.get(pk='my pk') 

回答

2

您可以覆蓋get_context_data通過額外的上下文:

... 

def get_context_data(self, **kwargs): 
    context = super(ItemCreate, self).get_context_data(**kwargs) 
    context['storage_item'] = StorageItem.objects.get(pk=self.kwargs['pk']) 
    return context 
+0

二手超(),但有一點。 – frlan

0

爲什麼不能簡單地做到以下幾點:

class StorageItemTransactionAddView(View): 

    def post(self, request, pk): 
     storage_item = StorageItem.objects.get(pk=pk) 
     ... 
     return render(request, 'myapp/index.html', {'object': storage_item}) 

現在,在您的模板,你可以做到以下幾點:

<h1>{{ object.name }}</h1> 

希望它可以幫助

相關問題