Как загрузить и отобразить изображение Django 2? - PullRequest
1 голос
/ 29 мая 2019

Я пытался жестко закодировать путь, но ничего не получалось.Что не так с моим кодом?Я получаю сообщение об ошибке 404. Изображение не отображается.

settings.py

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

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

models.py

image = models.ImageField(upload_to = 'media/', blank = True)

urls.py

urlpatterns = [...] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

класс forms.py PostForm (forms.ModelForm):

    class Meta:

        model = Post
        fields = ('author','title', 'text','image')

        widgets = {
            'title': forms.TextInput(attrs={'class': 'textinputclass'}),
            'text': forms.Textarea(attrs={'class': 'editable medium-editor-textarea postcontent'}),
        }

html

        <img src="{{post.image.url}}">

1 Ответ

1 голос
/ 30 мая 2019
static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

из того, что я понимаю, вы пытаетесь заставить django обслуживать статические файлы с этим, статические файлы и носители являются отдельными, эта строка у вас обслуживает статические объекты, такие как css, js и т. Д., Которые находятся в STATIC_ROOT, пока вынужно обслуживать MEDIA_ROOT, поэтому

static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

добавление этой части должно работать, но я настоятельно не рекомендую использовать это в реальном развертывании, медиа-файлы должны обрабатываться веб-сервером, таким как nginx, а не сервером приложений.

...