Метод Django CreateView get_initial не обновляет поле формы выбора опции - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь установить поле иностранного ключа кампании, которое является полем выбора опции в форме html, в начальное значение целого числа, переданного из URL. Значение campaign_id прекрасно достигает метода get_initial созданного мною представления, но HTML-форма все равно не выбирает это значение и не устанавливает поле выбора, даже несмотря на то, что идентификатор_кампа, который я передаю из urls.py, существует в Таблица кампании.

#models.py
class CampaignDetails(Timestamp):
  compaign = models.ForeignKey(Campaign, on_delete=models.CASCADE)
  caption_example = models.TextField(max_length=500)

#url.py
 path('create/details/<int:campaign_id>/', CampaignCreateDetails.as_view(), name='create-details'),

#views.py
class CampaignCreateDetails(CreateView):
  model = CampaignDetails
  fields = '__all__'
  template_name = 'campaign/campaign_details_create.html'
  success_url = '/brand-list/'

  def get_initial(self):
      return {
          'campaign': self.kwargs.get('campaign_id')
      }  

# campaign/campaign_details_create.html
<form method="post" enctype="multipart/form-data">{% csrf_token %}
    {{form.errors}}
    {{form.as_p}}
    <button class="btn waves-effect waves-light" type="submit" name="action">Submit
        <i class="material-icons right">send</i>
      </button>
</form>
...