ArrowJan. 27, 2019, 11:49 a.m.
Изменить имя формы в template для UpdateView
Добрый день!
На одной html странице нужно разместить два UpdateView. Для этого имя формы для одного хочу изменить на update_form, а второе на upd_form.
Стандартно в html файле UpdateView для формы использует имя form.
Код формы в html:
<form action="." method="POST"> {% csrf_token %} {{ form.as_p }} <button class="btn btn-outline-info" type="submit" value="Save">Add</button> <a href="{% url 'home' %}" class="ml-2 mt-2">Cancel</a> </form>
В документации указано что для изменения этого имени нужно указать context_object_name.
Пробовал так (views.py):
class DataUpdateView(LoginRequiredMixin, UpdateView): template_name = 'index.html' form_class = MyForm context_object_name = 'update_form' ### def get_object(self): return get_object_or_404(Project, id=self.kwargs.get('id')) def form_valid(self, form): return super().form_valid(form) def get_context_data(self, *args, **kwargs): context = super(ProjectUpdateView, self).get_context_data(*args, **kwargs) data = filter(self.request) context.update(data) return context
html:
<form action="." method="POST"> {% csrf_token %} {{ update_form.as_p }} <button class="btn btn-outline-info" type="submit" value="Save">Add</button> <a href="{% url 'home' %}" class="ml-2 mt-2">Cancel</a> </form>
Не работает. Возможно я что-то не так понял?
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
AD
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
m
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Last comments
Qt/C++ - Lesson 039. How to paint stroke in QSqlTableModel by value in the column? Many OPKs would advise users to start using the test strips around day 9 of your cycle, considering day 1 to be the first day of full menstrual flow buy priligy australia
Release of C++/Qt and QML application deployment utility CQtDeployer v1.4.0 (Binary Box) optionally substituted alkoxy, optionally substituted alkenyloxy, optionally substituted alkynyloxy, optionally substituted aryloxy, OCH, OC H, OC H, OC H, OC H, OC H, OC H, O C CH, OCH CH OH, O…
Qt/C++ - Lesson 031. QCustomPlot – The build of charts with time buy generic priligy We can just chat, and we will not lose too much time anyway
Qt/C++ - Lesson 060. Configuring the appearance of the application in runtime I didnt have an issue work colors priligy dapoxetine 60mg revia cost uk August 3, 2022 Reply
Circuit switching and packet data transmission networks Angioedema 1 priligy dapoxetine
Now discuss on the forum
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Nov. 15, 2024, 6:04 a.m.
добавить qlineseries в функции priligy for sale Gently flush using an ear syringe
Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
IscanderCheOct. 31, 2024, 3:43 p.m.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
Посмотрел на то что получается в get_context_data:
Вывод:
form осталась и добавилось update_form.
Похоже я не так понял документацию.?
Добрый день!
Для UpdateForm наименование _update_form - это постфикс. Зависимость имени шаблона состоит из имени модели и постфикса. Если модель называется Article, то имя шаблона будет такое article_update_form.html .
При этом, если ва нужно изменить постфикс на что-то иное, то можно написать так
Тогда название шаблона будет следующим
article_my_update_form.html
А context_object_name - это то под каким именем будет передаваться объект в рендер шаблона. Я обычно стараюсь не переопределять его, поскольку подхожу абстрагированно к объекту. То есть если
То в шаблоне можно будет обращаться к текущей редактируемой статье по имени article_object
А что касается двух форм, то делайте это в обычном View, поскольку UpdateView предназначен только для обного объекта.
О template_name_suffix я знал. Хотел именно переопределить то, как вызывать форму в шаблоне (файл *.html). Вместо form писать update_form.
За информацию о context_object_name спасибо.
Не помню, чтобы стандартным способом имя там переопределялось.
А вообще у вас подход неправильный к данном вопросу. Вы не можете на одной странице разместить два UpdateView. UpdateView отвечает за рендеринг всей страницы страницы в данном случае, если бы вы через ajax забирали кусочки страницы то ещё куда ни шло так говорить, и то, каждый UpdateView отвечал бы лишь за одну форму.
Если вы хотите разместить на одной странице две формы, то одну форму нужно рендерить через стандартые средства UpdateView, а вторую подмешивать через переопределение всех методов типо get и т.д. Честно, проще взять для такого обычный View и обрабатывать две формы вручную.
У меня есть одна такая ситуация, делаю так
Спасибо.