Как загрузить изображение в django CBV (класс на основе просмотров) - PullRequest
0 голосов
/ 21 октября 2019

Я работаю над созданием приложения для обмена блогами с использованием Django. Я пытаюсь добавить поле изображения, чтобы пользователи могли загружать изображения и просматривать их как сообщения. Но изображение не загружается. Джанго даже не выбрасывает ошибок. Код работает нормально, но изображение не загружается.

Я попытался добавить в шаблон «enctype», а также внести необходимые изменения в urls.py. Я даже указал MEDIA_ROOT и MEDIA_URL в settings.py. если settings.DEBUG: urlpatterns + = static (settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) Я добавил это в свой urls.py.

Мои модели.py

    from django.utils import timezone
    from django.contrib.auth.models import User
    from django.urls import reverse


    class Post(models.Model):
        title = models.CharField(max_length=100)
        content = models.TextField()
        date_posted = models.DateTimeField(default=timezone.now)
        author = models.ForeignKey(User, 
                         on_delete=models.CASCADE,related_name='% 
                                 (app_label)s_%(class)s_related')
        picture = 

  models.ImageField(upload_to='images',default='default.png',null=True)

        def __str__(self):
            return self.title 

       def get_absolute_url(self):
           return reverse('project-home')

МойViews.py

    class PostCreateView(SuccessMessageMixin,LoginRequiredMixin,CreateView):
        model = Post
        fields = ['title','content','picture']
        success_message = 'Your submission is sucessful!'
        def form_valid(self,form):
        form.instance.author = self.request.user
        return super().form_valid(form)

        def get_success_message(self):
            return self.success_message

изображение не загружается. Заранее спасибо!

1 Ответ

0 голосов
/ 22 октября 2019

я думаю, что вам нужно создать форму для модели публикации и добавить эту форму в представление создания [form_class = PostForm] вместо [model = Post]

...