Контроллер для загрузки изображений выдаёт ошибку,никак не могу понять в чем дело
ошибка "The view images.views.image_create didn't return an HttpResponse object. It returned None instead"
код из views.py
@login_required
def image_create(request):
if request.method == 'POST':
# Форма отправлена.
form = ImageCreateForm(data=request.POST)
if form.is_valid():
# Данные формы валидны.
#cd = form.cleaned_data
new_item = form.save(commit=False)
# Добавляем пользователя к созданному объекту.
new_item.user = request.user
new_item.save()
messages.success(request, 'Image added successfully')
# Перенаправляем пользователя на страницу сохраненного изображения.
return redirect(new_item.get_absolute_url())
else:
# Заполняем форму данными из GET-запроса.
form = ImageCreateForm(data=request.GET)
return render (request,
'images/image/create.html',
{'section': 'images', 'form': form})
код из forms.py
from django import forms
from .models import Image
from urllib import request
from django.core.files.base import ContentFile
from django.utils.text import slugify
class ImageCreateForm(forms.ModelForm):
class Meta:
model = Image
fields = ('title', 'url', 'description',)
widgets = {'url': forms.HiddenInput,}
def clean_url(self):
url = self.cleaned_data['url']
valid_extensions = ['jpg', 'jpeg','png']
extension = url.rsplit('.', 1)[1].lower()
if extension not in valid_extensions:
raise forms.ValidationError('The given URL does not match valid image extensions.')
return url
def save(self, force_insert=False,force_update=False,commit=True):
image = super(ImageCreateForm, self).save(commit=False)
image_url = self.cleaned_data['url']
image_name = '{}.{}'.format(slugify(image.title),image_url.rsplit('.', 1)[1].lower())
# Скачиваем изображение по указанному адресу.
response = request.urlopen(image_url)
image.image.save(image_name, ContentFile(response.read()), save=False)
if commit:
image.save()
return image
код из шаблона create.html
{% extends "base.html" %}
{% block title %}Bookmark an image{% endblock %}
{% block content %}
<h1>Bookmark an image</h1>
<img src="{{ request.Get.url }}" class="image-preview">
<form action="." method="post">
{{ form.as_p }}
{% csrf_token %}
<input type="submit" value="Bookmark it!">
</form>
{% endblock %}
Плюс ссылка на весь проект,вдруг так будет удобнее: https://yadi.sk/d/DNjlnEIGJg1lAg