Как мне обновить фото в формах

306 просмотра
0
0 Комментариев

Добрый день. Вот уже который день не могу обновить фото.

views.py:

def editads(request, announcement_id):
    if request.method=='GET':
        ads = Announcement.objects.get(pk=announcement_id)
        form = ImageUploadForm(initial={
                'title':ads.title,
                'description':ads.description,
                'phone_num':ads.phone_num,
                'price':ads.price,
                'subcategory':ads.subcategory,
                'first_image_original':ads.first_image_original,
            },
            )
        return render(request, 'account/edit_ads.html', {'form':form, 'ads':ads})
    if request.method == 'POST':
        new_form = ImageUploadForm(request.POST, request.FILES)
           if new_form.is_valid():
               try:
                   new_ads = request.POST
                   ads = Announcement.objects.get(pk=announcement_id)
                   ads.update(
                       title = new_ads['title'],
                       description = new_ads['description'],
                       phone_num = new_ads['phone_num'],
                       price = new_ads['price'],
                       subcategory = Subcategory.objects.get(subname=new_ads['subcategory']),
                       first_image_original = request.FILES['first_image_original'],
                   )
               except:
                   return render(request, 'account/edit_ads.html', {'error':'Do not added'})
               else:
                  return redirect('/reklama/example/')
           else:
               return render(request, 'account/edit_ads.html', {'message':'Zapolnite polya'})

Выходит сообщение — «Do not Added», как я понимаю моя форма не проходит валидацию. может я неверно написал логику

models.py:

class Announcement(models.Model):
    class Meta:
        db_table='announcements'
        title=models.CharField(max_length=250)
        description=models.CharField(max_length=300)
        phone_num=models.IntegerField()
        price=models.IntegerField()
        #date_create=models.DateField()
        #category=models.ForeignKey(Categories, on_delete=models.CASCADE, )
        subcategory=models.ForeignKey(Subcategory, on_delete=models.CASCADE)
first_image_original=models.ImageField(upload_to='images/')


Добавить комментарий

1 Ответы

Python Опубликовано 14.12.2018
0

Вот так должно работать:

new_image = request.FILES['first_image_original']
Announcement.objects.filter(pk=announcement_id)
                    .update(first_image_original=new_image)

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up