I'm very new to programming. I would like to pass data from html input to update view and then save it to my database. Tried to search for it but with no luck. Here is my html code:
<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>
Here is my model:
class Taskas(models.Model):
pavadinimas = models.CharField(max_length=30, null=True, blank=True)
atsakingas = models.CharField(max_length=30, null=True, blank=True)
Here is my urls:
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'),
]
Here is my view:
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
You have perfect example in the Django documantation.
So your view class in views.py:
The UpdateView generates standard ModelForm for your Tasks model and take care of saving form. Your urls.py are ok. In template(it should be named tasks_update_form.html):