Я пытаюсь загрузить изображение из формы и отобразить его в другом шаблоне, однако изображения на носителе не могут быть найдены.
Модель
class Upload(models.Model):
image = models.ImageField(upload_to='images/')
Просмотр
class HomePageView(CreateView):
model = Upload
form_class = UploadForm
template_name = 'home.html'
success_url = reverse_lazy('rank')
class RankView(ListView):
model = Rank
template_name = 'rank.html'
Настройки
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
STATIC_URL = '/static/'
URL
urlpatterns = [
path('', include('avatars.urls')),
path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Загрузить шаблон
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload Image</button>
</form>
Получение изображения с помощью
<img src="{{upload.image.url}}">
Форма
class UploadForm(forms.ModelForm):
class Meta:
model = Upload
fields = ['image']
При проверке кода в браузере, URL-адрес img 'unknown'
Редактировать:попытался изменить мой взгляд, без разницы
def upload_file(request):
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/rank')
else:
form = UploadForm()
return render(request, 'home.html', {'form': form})