Как я могу фильтровать объекты, используя представления django?

#django #django-models #django-forms #django-templates #django-views

#django #django-модели #django-forms #django-шаблоны #django-views

Вопрос:

Я использую это общее представление, и я хотел бы фильтровать campaign_type только для определенных типов. Я пытался использовать queryset= CampaignType.objects.filter(type=’social’), но это не работает. Есть какие-нибудь подсказки? Обратите внимание, что фильтр предназначен для отношения manytomany с CampaignType, а моя модель — Campaign.

  class CCtypeUpdate(generic.UpdateView):
     model = Campaign
     fields = ['campaign_type']
     template_name = 'campaign/campaign.html'
     success_url = '../../'
  

Комментарии:

1. представление обновления используется для одного объекта. Итак, используя filter, что вы пытаетесь?

2. У меня есть две модели Campaign и CampaignType, поэтому я хочу обновить / добавить в кампанию определенные типы, которые я не хочу отображать все

3. можете ли вы опубликовать complete CCtypeUpdate , чтобы все могли знать, использовали ли вы какие-либо формы

4. ну, вот и все CCtypeUpdate

Ответ №1:

Попробуйте это

 class CCtypeUpdate(generic.UpdateView):
    model = Campaign
    fields = ['campaign_type']
    ......
    #rest of your code 
    def get_form(self, form_class=None):    
        form = super(CCtypeUpdate, self).get_form(form_class)
        form.fields["campaign_type"].queryset = CampaignType.objects.filter(type='social')
        return form