gpt4 book ai didi

python - 尽管设置正确,媒体中的 Django 图像仍不显示

转载 作者:太空宇宙 更新时间:2023-11-03 20:15:33 25 4
gpt4 key购买 nike

我正在尝试从表单上传图像并将其显示在另一个模板上,但是找不到媒体中的图像。

型号

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/'

网址

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']

检查浏览器中的代码,img url 为“未知”

编辑:尝试改变我的观点,没有什么区别

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})

最佳答案

尝试使用 template_name 中的渲染,并且表单没有 action 属性

返回渲染(request, self.template_name, {'form': form})

[https://docs.djangoproject.com/en/2.2/topics/class-based-views/intro/#handling-forms-with-class-based-views][1]

关于python - 尽管设置正确,媒体中的 Django 图像仍不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58470187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com