Django загрузка изображения в пользовательский шаблон - PullRequest
0 голосов
/ 19 марта 2020

forms.py

from django import forms
from .models import VideoPost

class PostForm(forms.ModelForm):

    class Meta:
        model = VideoPost
        fields = ('category', 'title', 'slug', 'content', 'video', 'image',)

models.py

class VideoPost(models.Model):
    category = models.ForeignKey('Category', on_delete=models.CASCADE)
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100, unique = True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    video = models.CharField(max_length=100, blank=True)
    content = RichTextUploadingField()
    image = models.ImageField(upload_to='images', null=True, blank=True)
    date_posted = models.DateTimeField(default=timezone.now)

    def _get_unique_slug(self, *args, **kwargs):
        self.slug = slugify(self.title)
        super(VideoPost, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.title

views.py

def post_new(request):
        if request.method == "POST":
            form = PostForm(request.POST, request.FILES)
            if form.is_valid():
                post = form.save(commit=False)
                post.author = request.user
                post.published_date = timezone.now()
                post.save()
                return render(request, 'stories/post_detail.html')
        else:
            form = PostForm()
        return render(request, 'stories/post_new.html', {'form': form})

settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = (
  os.path.join(BASE_DIR, 'static'),
)

LOGIN_REDIRECT_URL = 'home'

MEDIA_URL = 'static/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media')

Это не на django встроенной странице администратора, я хотел сделать собственный шаблон поста. Все остальные формы ввода работают нормально, и все данные хранятся в БД правильно, кроме изображения. поле изображения в базе данных всегда пусто, независимо от того, какое изображение я туда поместил, и даже в моем статическом / медиа / пути к изображению оно пустое. Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 19 марта 2020

Убедитесь, что в форме HTML атрибут enctype = "multipart / form-data" установлен правильно. В противном случае request.FILES будет пустым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...