@thelionsin

Почему не отображается форма в модальном окне?

Собственно почему не отображается я понял, потому что какая то ошибка с путем, но вот какая именно я не могу понять, в общем, в модальном окне не отображается форма, наверное из за того что тот путь на который я указываю форму, он уже занят другим, вот код:
class NewsView(ListView):
    model = News
    template_name = 'News.html'
    context_object_name = 'news'

class Add(CreateView):
    model = News
    template_name = 'News.html'
    form_class = ArticleForm
    success_url = reverse_lazy('news')


    path('news',NewsView.as_view(),name='news'),
    path('news',Add.as_view(),name='add'),


class ArticleForm(forms.ModelForm):
    class Meta:
        model = News
        fields = '__all__'


<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
  Добавить пост
</button>


<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form id="add_form" method="get">
            {% csrf_token %}
       {{form}}
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Закрыть</button>
        <button form="add_form" type="submit" class="btn btn-primary">Добавить</button>
      </div>
    </div>
  </div>
</div>


Как видите, у меня в url два запроса на news, если я создам новый шаблон, пустой, то там отображается форма, а мне нужно, чтобы именно в этом где отображаются записи, отображалась форма, когда нажимаешь на кнопку, url не меняется, т.е. нельзя сделать допустим news/add, он просто не отобразится...
  • Вопрос задан
  • 442 просмотра
Пригласить эксперта
Ответы на вопрос 1
@diver22
Тебе не нужен отдельный url для формы в модальном окне.
Правильным подходом было бы отправлять данные формы POST запросом на url 'news'.
Но если все же хочется отдельную view-ху для добавления новостей, то закрепи за ней отдельный url
например "news/add"
измени
<form id="add_form" method="get">
на
<form action="/news/add" id="add_form" method="post">

Создавать сущности методом GET - плохая идея. Все параметры будут передаваться в заголовке.
Попробуй вынести форму из модального окна и разместить на основной странице.
И заставь ее работать сначала так. А уж потом можно ее засунуть в модальное окно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы