Форум сайта python.su
Создание объектов я реализовал через форму, редактирование я реализовал без формы, почти всё работает, удаётся отредактировать Текст вопроса и Ответ на вопрос, но не фото прикреплённое к вопросу. При изменении фото в консоль выводится None, хотя я его прикреплял. Что мне исправить?
это models.py
class Test(models.Model): name=models.CharField('Имя теста',max_length=300) author=models.ForeignKey(User,on_delete=models.CASCADE,verbose_name='Автор') def questionimg_directory_path(instance, filename): return 'Question/foto/test_{0}/{1}'.format(instance.test.id, filename) class Question(models.Model): test=models.ForeignKey(Test,on_delete=models.CASCADE,verbose_name='тест',null=True,blank=True) question=models.TextField(verbose_name="Текст вопроса") answer=models.TextField(verbose_name="Ответ на вопрос") img=models.FileField('Фото',upload_to=questionimg_directory_path,null=True,blank=True)
from django.contrib import admin from django.urls import path from core import views app_name='core' urlpatterns = [ path('test/<int:id>/edit_question/<int:id1>/edit_par_question', views.edit_par_question, name='edit_par_question'), path('test/<int:id>', views.test, name='test'), ]
def edit_question(request,id,id1): test=Test.objects.get(id=id) que=Question.objects.get(id=id1) context={ 'test':test, 'que':que, } template='test.html' return render(request,template,context) def edit_par_question(request,id,id1): te=Test.objects.get(id=id) que=Question.objects.get(id=id1) if request.method=='POST': if te.author==request.user: que.question=request.POST.get("question") que.answer=request.POST.get("answer") que.img=request.POST.get("img") print(request.POST.get("img"))# выводит None que.save() return HttpResponseRedirect(reverse('core:test',args=(te.id,)))
<form method="post" action="{%url 'core:edit_par_question' test.id que.id%}" enctype="multipart/form-data"> {% csrf_token %} <label>Текст вопроса:</label> <input type="text" name="question" value="{{que.question}}" class="form-control"/> <label>Ответ на вопрос:</label> <input type="text" name="answer" value="{{que.answer}}" class="form-control"/> <label>Фото:</label> {%if que.img%}На данный момент {{que.img.url}}<br>{%endif%} <input type="file" name="img" value="{{que.img}}" class="form-control"/> <button type="submit" class="btn btn-primary">Изменить</button> </form>
Офлайн