2016-08-14 3 views
0

Мой общий DetailView:Динамически фильтр рк в QuerySet

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',) 

Это только показывает, когда рк = 1, но я хочу, чтобы присвоить значения рк динамически, так что, когда я выбрал другой pk дает соответствующие данные.

Как назначить значения pk динамически?

+0

Предполагая, что вид на самом деле на основе DetailView, а не DeleteVie w, то, что вы хотите, это то, что он делает автоматически; удалите свое определение 'c' и просто получите доступ к объекту в шаблоне. –

+0

Не знаю, из вашего ответа. Если я удалю c тем, что будет там. В настоящее время pk = 1, которые только возвращают Circular No-1, а не другие. Я хочу получить Circular No-2, 3 и т. Д. – ohid

+0

Весь смысл DetailView заключается в том, что он уже отвечает за заполнение контекста шаблона объектом, связанным с pk. Как я уже сказал, он присутствует как «объект». –

ответ

0

Вы можете сделать следующее и доступа объекта в шаблоне

образец URL

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

Смежные вопросы