Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.01.2023
Сообщений: 1

Django UpdateView Bootstrap modal

27.01.2023, 23:42. Показов 1954. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
view.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
сlass HistoryPamentsByService(ListView):
    model=Payments
    form_class=PaymentsForm
    template_name ='myflat/history_by_service.html'
    context_object_name='flats'
    slug_url_kwarg = 'slug'
 
    def get_context_data(self, **kwargs):
        context=super().get_context_data(**kwargs)
        form=PaymentsForm()
        payments=Payments.objects.filter(flats_id=self.kwargs['flats_id'])
        context['form']=form
        return context
 
    def get_form(self,*args,**kwargs):
        super().get_form(*args, **kwargs)
        form=PaymentsForm()
        return form
 
    def get_queryset(self):
        return Payments.objects.filter(slug=self.kwargs['slug'],flats_id=self.kwargs['flats_id'])
 
class UpdatePayments(UpdateView):
    model=Payments
    pk_url_kwarg='pk'
    form_class=PaymentsForm
    template_name='myflat/update_modal.html'
    context_object_name='name_flat'
urls.py
Python
1
2
3
4
urlpatterns = [ path('history_by_service/<slug:slug>/<int:flats_id>/',
                      HistoryPamentsByService.as_view(),name='HistoryPamentsByService'),
                path('UpdatePayments/<int:pk>/',UpdatePayments.as_view(),name='UpdatePayments'),
              ]
template history_by_service.html (for ListView)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{%extends "base.html"%}
{%block content%}
{% for flat in flats  %}
    <tr>
      <td scope="row">{{ forloop.counter }} </td>
      <td>{{flat.name_service}}</td>
      <td>{{flat.amount_of_bill}}</td>
      <td>{{flat.amount_of_real}}</td>
      <td>{{flat.date_of_bill}}</td>
      <td>{{flat.date_of_payment}}</td>
      <td>{{flat.get_status_payment_display}}</td>
      <td>{{flat.comments}}</td>
      <td>{{flat.bill_save_pdf}}</td>
      <td>
<form method="post" action="{% url 'UpdatePayments' flat.pk  %}" enctype="multipart/form-data">
{% csrf_token %}
<button type='button' class='btn btn-success btn-sm' id="update_modal" 
data-bs-toggle="modal"     data-bs-target="#update_modal{{flat.pk}}">
<i class="fa-regular fa-pen-to-square fa-fw"></i>Edit</button> 
{% include "myflat/update_modal.html" %}
</form> 
{% endfor %}
 
{% endblock content %}
template update_modal.html
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<div class="modal fade" id="update_modal{{flat.pk}}" data-bs-backdrop="static" 
    data-bs-keyboard="false" tabindex="-1" aria-labelledby="update_modal" aria-hidden="true">
<div class="modal-dialog">
  <div class="modal-content" style="width:auto">
   <div class="modal-header">
     <h5 class="modal-title " id="update_modalLabel">{{flat.name_flat}}</h5>
     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
   </div>
 
<form  method="post" action="{% url 'UpdatePayments' flat.pk %}" enctype="multipart/form-data">
   <div class="modal-body">
     {% csrf_token %} 
     {% for field in form %}
        {{field}}          
     {% endfor %}
   </div>
  <div class="modal-footer">
    <button type="submit" class="btn btn-primary" >
      <i class="fa-solid fa-trash fa-fw" ></i>Save</button>
    
    <button type="button" class="btn btn-warning" 
     data-bs-dismiss="modal">
     <i class="fa-regular fa-circle-xmark"></i>Close</button>
 </div>
</div>
</form>
</div>          
</div>
</div>
Пытался также добавить в UpdatePayments(UpdateView) следующий код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
class UpdatePayments(UpdateView):
    model=Payments
    pk_url_kwarg='pk'
    form_class=PaymentsForm
    template_name='myflat/update_modal.html'
    context_object_name='name_flat'
 
def get_context_data(self, **kwargs):
        context= super().get_context_data(**kwargs)
        obj=Payments.objects.get(pk=self.kwargs['pk'])
        form=PaymentsForm(self.request.POST or None ,instance=obj)
        context['form']=form
        return context
Но все равно получаю пустые поля в модальном окне Bootstrap
причем когда я заполняю пустую форму и нажимаю сохранить, все данные сохраняется и отображаются в ListViewпредставление, и когда нажимаю кнопку назад в браузере, то переход на предыдущую страницу не осуществляется, и если снова открыть модальное окно, в котором только, что до этого заполнил поля, то модальное окно появляется с заполненными уже данными!

Что делать как изменить код, чтобы модальное окно сразу появлялось с данными, не пустое?!
Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2023, 23:42
Ответы с готовыми решениями:

Django, UpdateView, обновление с использованием ajax
Django 1.10. jquery-3.1.0 Решил сделать обновление данных через ajax. В общем, получаю чистое окно браузера. В Хроме в...

Не удается подключить Bootstrap к Django сайту
Не могу подключить бутстрап к джанго сайту, размещенном на хостинге. В html документе прописал эти строки: {% load staticfiles %} ...

Не могу разобраться с Django Bootstrap Modal Forms
Ну не выскакивают окошки хоть убейся . Для теста сделал новый проект и все по инструкции . Но нифига не работает. Джангу только начал...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.01.2023, 23:42
Помогаю со студенческими работами здесь

Bootstrap несколько modal окон
Есть готовые модальные окна, кнопка вызова: &lt;button type=&quot;button&quot; class=&quot;btn btn-primary&quot; data-toggle=&quot;modal&quot;...

Bootstrap, modal & jQuery
Здравствуйте. Есть модальное окно (twitter bootstrap) и в нем выводится таблица для подсчета. В зависимости от выбранных ячеек в этой...

Bootstrap modal + ajax вернуть страницу
доброй недели всем. в модальном окне бутстрапа ввожу логин пароль. аяксом отсылаю : $.ajax({ url:...

bootstrap modal как использовать метод show? чтоб модальное окно отображалось при вызове определённой функции
&lt;!-- Button trigger modal --&gt; &lt;button type=&quot;button&quot; class=&quot;btn btn-primary&quot; data-bs-toggle=&quot;modal&quot; data-bs-target=&quot;#exampleModal&quot;&gt; ...

Bootstrap не работает css в django
подскажите по джанго2 не работает bootstrap &quot;&quot;&quot; Django settings for mysite project. Generated by 'django-admin startproject' using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru