Почему при публикации поста через админку фотография пользователя отображается, а при публикации через CreateView - нет? (фотография берется из другой модели через ForeignKey).
Видимо что-то не так с CreateView
пробовал делать вот так:
views.py
class CreatePostView(CreateView):
model = new_sg
fields = ['song','add_mus','text', 'genre']
opisan = opisan.objects.all()
def form_valid(self,form):
form.instance.artist = self.request.user
form.instance.opisan = self.opisan.get(artist=self.request.user)
return super().form_valid(form)
models.py
class new_sg(models.Model):
song = models.CharField(max_length = 50,verbose_name = "Название трека:")
opis = models.ForeignKey('opisan', on_delete = models.DO_NOTHING, default='', null=False, blank = False)
text = models.TextField(verbose_name='Описание к песне, Ваши соцести и прочее...', default='', )
artist = models.ForeignKey(User,on_delete = models.CASCADE,verbose_name = 'Артист',null = False,blank = False,default = '',related_name = 'author')
published = models.DateTimeField(auto_now_add = True,db_index = True,verbose_name = 'Дата публикации')
add_mus = models.FileField(upload_to = 'arch/for_main',verbose_name = 'Файл', null = False,blank = False,default = '')
genre = models.ForeignKey('rub', null = False,on_delete = models.PROTECT,verbose_name = 'Жанр',default = '')
views = models.IntegerField(default = 0)
potr = models.ManyToManyField(User,through = 'UserSongRalation',related_name = 'potr')
class opisan(models.Model):
img = models.ImageField(upload_to = 'img',default = '',verbose_name = 'Изображение для профиля:',)
artist = models.ForeignKey(User,on_delete = models.CASCADE,default = '')
text = models.TextField(verbose_name = 'О себе:')
city = models.ForeignKey('city', null = False,on_delete = models.DO_NOTHING,verbose_name = 'Город',default = '')
boo = models.BooleanField(default = False)
Еще пробовал делать так form.instance.opisan = self.opisan.get(artist=self.request.user)
, но с filter, но также ничего не работало.
А изображения появляется в этой папке?
Что в HTML, может форма не multipart/form-data
?
Да, появляется.
в html:
<body>
{%bootstrap_css%}
<form enctype="multipart/form-data" method="POST">
{% csrf_token %}
{%bootstrap_form form%}
<button type="submit" class="btn btn-success">Save person</button>
</form>
</body>
Изображение отображается в личном кабинете.Может я просто неправильно обращаюсь к изображению?
<img class="profile-img" src="{{track.opis.img.url}}">
Может нет этой переменной тут или не то имя или не тот тип?
Что в src
получается? (DevTools или Ctrl+U)
В src ничего нет.