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

UpdateView передать в шаблон id записи

28.05.2024, 10:47. Показов 483. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет профессионалам!
Вопрос такой!
Есть модель
Через нее создаю связаную форму.
И тут возникает 2 вопроса:
1. Как мне вписать форму в свой шаблон. Предположим использую элементы boostrap с своей версткой. Ну я могу конечно распихать переменными, то что нужно, но в таком случае нет проверок которые использует DJANGO основываясь на модели. Если дадите направление где копать буду признателен
2. Могу ли я форму вывести в модальном окне? В этом случает не понятно как с ней работать, так как UpdateView работает с отдельным окном, а модальное окно - это часть страницы.
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
30
31
32
33
class Product(models.Model):
    name = models.CharField(blank=True, max_length=100, verbose_name='Название')
    # company = models.ForeignKey(Company, on_delete=models.CASCADE, null=True)
    number = models.IntegerField(verbose_name='№')
    type_calc = models.CharField(max_length=100, verbose_name='Тип калькулятора')
    name_calc = models.CharField(max_length=100, verbose_name='Название калькулятора')
    printing = models.IntegerField(verbose_name='Тираж')
    price_calc = models.FloatField(verbose_name='Стоимость расчета')
    price_sell = models.FloatField(null=True, blank=True, verbose_name='Стоимость подажи')
    cost = models.FloatField(verbose_name='Затраты')
    profit = models.FloatField(null=True, blank=True, verbose_name='Прибыль')
    description = models.TextField(blank=True, verbose_name='Описание')
    file_calc = models.FileField(blank=True, upload_to='upload_model', verbose_name='Файл расчета')
    file_mount = models.FileField(blank=True, upload_to='upload_model', verbose_name='Файл раскладки на лист')
    link_calc = models.URLField(verbose_name='Ссылка на расчет')
    mail_pm = models.EmailField(null=True, max_length=50, verbose_name='Почта пользователя')
    date_create = models.DateField(verbose_name='Создан')
    status = models.ForeignKey(Status, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Статус')
    date_end = models.DateField(blank=True, null=True, verbose_name='Дата готовности')
    date_ship = models.DateField(blank=True, null=True, verbose_name='Дата отгрузки')
    type_pay = models.ForeignKey(TypePay, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Тип оплаты')
    user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, verbose_name='Ответственный пользователь')
 
    # округляем до 2 занков после запятой
    def save(self, *args, **kwargs):
        if not self.price_calc == None: self.price_calc = round(self.price_calc, 2)
        if not self.price_sell == None: self.price_sell = round(self.price_sell, 2)
        if not self.cost == None: self.cost = round(self.cost, 2)
        if not self.profit == None: self.profit = round(self.profit, 2)
        super(Product, self).save(*args, **kwargs)
 
    def __str__(self):
        return f'{self.id} {self.number} {self.name_calc} {self.printing} '
Python
1
2
3
4
5
class UpdateOrderCrispyView(UpdateView):
    model = Product
    form_class = DetalProductCrispyForm
    template_name = 'test.html'
    success_url = reverse_lazy('list')
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
class DetalProductCrispyForm(forms.ModelForm):
    extra_context = {}
 
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.helper.form_show_labels = True
        self.helper.add_input(Submit("submit", "Save"))
 
        self.fields['price_calc'].disabled = True
        self.fields['date_create'].disabled = True
        self.fields['printing'].disabled = True
        self.fields['description'].disabled = True
        self.fields['number'].disabled = True
        self.fields['user'].disabled = True
        self.fields['type_calc'].disabled = True
        self.fields['type_calc'].widget = HiddenInput() # скрываем поле
 
    class Meta:
        model = Product
        fields = [
            'id',
            'number',
            'name',
            'type_calc',
            'price_calc',
            'date_create',
            'user',
            'printing',
            'price_sell',
            'price_calc',
            'description'
        ]
        pprint.pprint(model.id)
        widgets = {
            'date_end': forms.DateInput(
                attrs={
                    'type': 'date',
                    'max': datetime.now().date(),
                },
            ),
            'date_ship': forms.DateInput(
                attrs={
                    'type': 'date',
                    'max': datetime.now().date(),
                },
            ),
            'name': forms.TextInput(attrs={'class': 'input-group'}),
            'description': forms.Textarea(attrs={'class': 'block-info'}),
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.05.2024, 10:47
Ответы с готовыми решениями:

Передать шаблон std::array в другой шаблон
Шаблон std::vector передать получается: template <class T, template<class U, class = allocator<U> >class Seq > class A{ ...

Шаблон очереди + шаблон записи?
Есть три вопроса...Если я делаю задачу наследованием, является ли это решением с помощью контейнера и итератора? (т.е. - какой из пунктов...

Django UpdateView Bootstrap modal
view.py сlass HistoryPamentsByService(ListView): model=Payments form_class=PaymentsForm template_name...

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

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

Передать constexpr в шаблон от типа
Добрый день. Имееются следующие классы: #include <limits> #include <iostream> class MyInt final { public: constexpr...

Как передать словарь в шаблон?
Мой словарь Фрагмент шаблона score_dict - сам словарь, который я уже передал в функцию render Надо вывести циклом имя и данные...

Как передать свой шаблон?
Добрый день форумчане :) Буду рад если подскажите несколько моментов: 1. Правильно ли я понял, что при каждом новом создании сайта,...

Передать текст ошибки в шаблон
class TrainSearchView(ListView): model = Train template_name = 'trains/search.html' context_object_name = 'train' ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Камера 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, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru