2016-08-14 56 views
0

我通用的DetailView:動態篩選PK中查詢集

class CircularDetail(DeleteView): 
    model = Circular 
    template_name = 'genre/circular_detail.html' 

    def get_context_data(self, **kwargs): 
     ctx = super(CircularDetail, self).get_context_data(**kwargs) 
     ctx['c'] = Circular.objects.get(pk=1) 
     ctx['sittings'] = Sitting.objects.all() 

     return ctx 

我的圓形模式:

class Circular(models.Model): 
    cir_no = models.IntegerField(blank=False) 
    sit_start_date = models.DateField(blank=False) 
    sit_end_date = models.DateField(blank=False) 
    sess_no = models.ForeignKey(Session, 
           on_delete=models.CASCADE) 
    parl_no = models.ForeignKey(Parliament, 
           on_delete=models.CASCADE) 
    class Meta: 
     unique_together = ('cir_no', 'sess_no',) 

這隻能說明當PK = 1,但我想動態分配的PK值,這樣,當我選擇了不同的pk會給出相應的數據。

我怎麼能動態分配的PK值?

+0

假設的觀點實際上是基於DetailView,而不是DeleteVie w,你想要的是它自動執行的操作;刪除'c'的定義,只需訪問模板中的'object'。 –

+0

我不清楚你的回覆。如果我刪除c會在那裏。目前pk = 1是否只返回循環號1而不是其他號。我想通告第2,3,等等 – ohid

+0

一個的DetailView的全部意義在於,它已經是負責與填充與PK相關聯的對象模板上下文。正如我所說,它是以「物體」的形式出現的。 –

回答

0

您可以執行以下操作和訪問對象模板

樣品網址

url(r'^circular/(?P<pk>\d+)/details/$', 
    CircularDetail.as_view(), 
    name="circular_detail") 

意見

from django.views.generic.detail import DetailView 

class CircularDetail(DetailView): 
    model = Circular 
    template_name = 'genre/circular_detail.html' 

在template.html

<div> 
    CIR No: {{ object.cir_no }} 
    Sit Start Date : {{ object.sit_start_date }} 
</div> 
+0

謝謝您的回答,但我的要求是不同的。這裏Cir no與坐的日期有關,所以每個cir有不同的坐位。 – ohid

+0

你能用坐式更新你的問題嗎? –

+0

這裏是我的問題的鏈接:http://stackoverflow.com/questions/38939288/change-scheduled-date-to-another-date-with-transfering-content-and-filter-pk-dyn。這個問題1現在是相關的。 – ohid