Я просто не могу понять, как загрузить изображения в django. Я читал десятки сообщений в блогах и вопросы здесь, но большинство из них просто путают меня больше.Загрузка файла изображения Django
Вот что у меня есть. Это моя модель:
class Post(models.Model):
user = models.ForeignKey(User)
screenshot = models.ImageField(null=True, upload_to="images")
date = models.DateTimeField("date posted", auto_now=True)
text = models.TextField()
Вот форма, которую я использую:
class PostForm(forms.Form):
text = forms.CharField(
widget = forms.Textarea(attrs = {'cols': 40, 'rows': 10}), required=True)
screenshot = forms.ImageField(required=False)
А вот как я в настоящее время обработки формы:
if request.method == 'POST':
form = PostForm(request.POST, request.FILES)
if form.is_valid():
post = Post(
user = request.user,
text=form.cleaned_data['text'],
screenshot=form.cleaned_data['screenshot']
)
post.save()
Но это не работает , файл не загружается на сервер. Согласно documentation on file uploads, я должен написать свою собственную функцию handle_uploaded_file, но эта страница не объясняет:
- Как выяснить, где сохранить загруженный файл?
- Как распространять файлы по нескольким каталогам?
- Как предотвратить дублирование двух файлов с тем же именем?
- Какое значение присваивается ImageField моей модели?
Это, кажется, как эти проблемы уже решены в тысячу раз ...
stevejalim ответил на вопрос лучше, чем вы. –
Ну, его ответ действительно не работал для меня вообще. – amarillion