Как передать данные из шаблона в Updateview
Я очень новичок в программировании. Я хотел бы передавать данные из html ввода в update view и затем сохранять их в базе данных. Пытался искать, но безуспешно. Вот мой html код:
<form action="{% url 'darbai:taskasupdate' pk=taskas.pk %}" method="POST">
{% csrf_token %}
<input type="text" name="pavad">
<input type="text" name="atsak">
<button type="submit"/>Update</button>
</form>
Вот моя модель:
class Taskas(models.Model):
pavadinimas = models.CharField(max_length=30, null=True, blank=True)
atsakingas = models.CharField(max_length=30, null=True, blank=True)
Вот мои ссылки:
urlpatterns = [
path('', CreateList.as_view(), name='CreateList'),
path('delete/<int:pk>', TaskasDeleteView.as_view(), name='taskasdelete'),
path('update/<int:pk>', TaskasUpdateView.as_view(), name='taskasupdate'),
]
Вот мое мнение:
class TaskasUpdateView(UpdateView):
model = Taskas
form_class = TaskasForm
success_url = reverse_lazy('darbai:CreateList')
def post(self, request, **kwargs):
self.object = self.get_object()
request.POST['pavad'] = self.object.pavadinimas
request.POST['atsak'] = self.object.atsakingas
У вас есть отличный пример в Django documantation.
Так что ваш класс представления в views.py:
class TaskasUpdateView(UpdateView):
model = Taskas
fields= ['pavadinimas', 'atsakingas']
success_url = reverse_lazy('darbai:CreateList')
UpdateView генерирует стандартную ModelForm для вашей модели Tasks и позаботится о сохранении формы. Ваш urls.py в порядке. В шаблоне (он должен называться tasks_update_form.html):
<form action="{% url 'darbai:taskasupdate' pk=taskas.pk %}" method="POST">
{% csrf_token %}
{{ form }}
<button type="submit"/>Update</button>
</form>