Всем привет.
Сейчас при загрузке изображение через форму, файл имеет путь типа:
sitename.ru/media/media/ex_friend.jpg
Т.е. идет два раза путь media.
Из-за двойного пути в итоге вещи типа: {{ profileinfo.avatar.url }} - не работают.
В самой модели upload_to - пуст
Пути:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
STATICFILES_DIRS = (
)
___________________________________________________
Модельclass Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.ImageField(upload_to='', blank=True, null=True, help_text="Идеальный размер 150 на 150 пикселей",
verbose_name="Аватар юзера")
myself = models.TextField(default='Напишите о себе', help_text="Свободное описание юзера", verbose_name="О себе")
myoffer = models.TextField(default='Напишите о ваших уменениях', help_text="Свободное описание юзера",
verbose_name="Что предлагаю")
# Форму для заполнения профиля
class Profile_Form(forms.Form):
avatar = forms.ImageField(label='Загрузить Аватар', required=False)
myself = forms.CharField(widget=forms.Textarea(attrs={'class': 'course_review_form_width'}), label='О себе',
required=False)
myoffer = forms.CharField(widget=forms.Textarea(attrs={'class': 'course_review_form_width'}), label='Что предлагаю',
required=False)
Вьюшка, которая обрабатывает загрузку видео:
def update_profile(request, add_id):
token = {}
token.update(csrf(request))
if request.user.is_authenticated():
current_user = request.user
useritem = User.objects.get(id=current_user.id)
try:
if useritem.profile is not None:
if request.POST:
form = Profile_Form(request.POST or None, request.FILES or None)
if form.is_valid():
if form.cleaned_data['avatar']:
avatar = form.cleaned_data['avatar']
#Берем изображение из ввода в форму, и с помощью easy_thumbnails - кропим его еще до сохранения в базу
options = {'size': (200, 200), 'crop': True}
thumb_url = get_thumbnailer(avatar, relative_name=str(current_user.id)).get_thumbnail(options).url
useritem.profile.avatar = thumb_url
useritem.profile.save(update_fields=['avatar'])
if form.cleaned_data['myself']:
myself = form.cleaned_data['myself']
useritem.profile.myself = myself
useritem.profile.save(update_fields=['myself'])
if form.cleaned_data['myoffer']:
myoffer = form.cleaned_data['myoffer']
useritem.profile.myoffer = myoffer
useritem.profile.save(update_fields=['myoffer'])
return profile(request, current_user.id)
else:
return redirect('/', token)
else:
return redirect('/', token)
else:
return redirect('/', token)