Как я могу редактировать содержимое главной страницы?
Работаю над небольшим проектом с использованием Django 3.2 и только что добавил кнопку редактирования на страницу, чтобы пользователь мог редактировать содержимое. Я сделал это с помощью форм и представлений, перенаправляя пользователя на другую страницу и редактируя содержимое, но я подумал, есть ли способ редактировать содержимое, не перенаправляя пользователя на другую страницу? Для лучшего понимания того, что я сделал до сих пор, покажу код ниже: models.py
from django.db import models
from django.contrib.auth.models import User
from django.db.models.deletion import CASCADE
# Create your models here.
class todo(models.Model):
content = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200, null=True)
user = models.ForeignKey(User, on_delete=CASCADE, null=True)
def __str__(self):
return self.content
forms.py
class UpdateContent(forms.ModelForm):
class Meta:
model = todo
fields = ['content']'
views.py
contents = todo.objects.get(id=pk)
form = UpdateContent(instance=contents)
if request.method == 'POST':
form = UpdateContent(request.POST, instance=contents)
if form.is_valid():
form.save()
return redirect('/')
context = {'form': form}
return render(request, 'html/update.html', context)
home.html
table class="table table-dark table-hover table-bordered">
<thead>
<tr id="tr-table">
<th id="text-left">#</th>
<th id="text-center">ITEMS</th>
<th id="text-right"><i class="material-icons"></i></th>
<th id="text-right2"><i id="edit" class="material-icons"></i></th>
</tr>
</thead>
<tbody>
{% for all_item in all_items%}
<tr>
<th id="row" scope="row"> {{ forloop.counter }} </th>
<td id="content">{{ all_item.content }}</td>
<form action="delete_todo/{{all_item.id}}/" method="post">
{% csrf_token %}
<td class="text-right-delete">
<button id="btn-delete" class="btn btn-outline-danger">Delete</button>
</td>
</form>
<td class="text-left-edit"><a class="btn btn-outline-info" href="{% url 'todo:update' all_item.id %}">Edit</a></td>
</tr>
{% endfor %}
</tbody>
</table>