Как добавить "функцию редактирования" в django

Мне нужно добавить кнопку редактирования в мое приложение django, но она только перенаправляет меня на домашнюю страницу, и никакие изменения не сохраняются.

вот мой код views.py, я думаю, что проблема возникает именно здесь

def editPhoto (request, pk):
photo = Photo.objects.get(id=pk)
categories = Category.objects.all()

if request.method == 'POST':   
    description = request.FILES.get('description')
    photo.save()
    return redirect ('/')

context = {'categories': categories, 'photo': photo}
return render(request, 'photos/edit.html', context)`

models.py

class Category(models.Model): name = models.CharField(max_length=100, null=False, blank=False)
def __str__(self):
    return self.name

class Photo(models.Model): category = models.ForeignKey( Category, on_delete=models.SET_NULL, null=True, blank=True) image = models.ImageField(null=False, blank=False) description = models.TextField()
def __str__(self):
    return self.description`

edit.html

<div class="container"> <div class="row justify-content-center"> <div class="col">
            <a href="{% url 'gallery' %}" class="btn btn-dark my-3">Go Back</a>

            <form method='POST' action="" enctype="multipart/form-data">
                {% csrf_token %}
                
            <div style="height: 90vh;">
                <img style="max-width: 100%; max-height: 100%;" src="{{photo.image.url}}" class="center" >

            
            </div>
           
            <div>
                <input required name="description" class="input" value="{{photo.description}}" type="text" size="60"></input>
            </div>
            
            <div class="center">
            
            <button type="submit" class="btn btn-primary m-3; center">Update</button>
            </div>

        </div>
    </div>
</div>`

Проблема в том, что вы не сохраняете никаких изменений в вашей модели.

description = request.FILES.get('description')
    photo.save()

это следует изменить на

photo.description = request.POST.get('description')
photo.save()

Проблема в том, что вы не передаете id фотографии, которую хотите редактировать, из вашего html-файла.

  1. в Edit.html в форме action="{% url photo.id %} , и внесите изменения, если необходимо, в файл urls.py.

  2. тем самым id будет передан в views.py, который действует как pk.

    .
Вернуться на верх