我已在管理门户中上传了图片 但它没有在 html 模板中呈现 我该如何解决这个问题? 下面是源代码! models.py
from django.db import models
from django.contrib.auth import get_user_model
from PIL import Image
class Question(models.Model):
question_relation=models.ForeignKey('Answer',related_name='ques',on_delete=models.CASCADE)
question_image=models.ImageField(upload_to='levels/media/')
text=models.TextField(blank=True,max_length=100)
def __str__(self):
return str(self.question_relation)
html 文件
<div style="margin-left:35%;margin-right:35%">
<img src="{{Question.question_image.url}}" alt="">
<form class="post-form" method="post">
{%csrf_token%}
{{form.as_p}}
<button type="submit" class="save btn btn-default">Submit</button>
</form>
<script>var editor=new MediumEditor('.editable');</script>
</div>
我已将这些包含在我的 urls.py 中
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在检查 img src 中的检查元素时,它显示为(未知)。 我不知道为什么它无法获取图像的网址
设置.py
MEDIA_URL="/media/"
MEDIA_ROOT=os.path.join(BASE_DIR,'levels/media')
views.py
from django.shortcuts import render,redirect,get_object_or_404
from django.views.generic import *
from . import models
from django import forms
from .forms import CheckAnswer
from django.contrib.auth.decorators import login_required
from .models import Question
# Create your views here.
@login_required
def Arena1(request):
if request.method=='POST':
form = CheckAnswer(request.POST)
if form.is_valid():
return redirect('thanks')
else:
form=CheckAnswer()
args={'form':form}
return render(request,'levels/arena1.html',args)
最佳答案
您忘记设置enctype="multipart/form-data"
将您的表单更新为 -
<form class="post-form" method="post" enctype="multipart/form-data">
{%csrf_token%}
{{form.as_p}}
<button type="submit" class="save btn btn-default">Submit</button>
</form>
当您编写客户端代码时,您需要知道的是当您的表单包含任何元素时使用 multipart/form-data。如果您想知道原因,请参阅 here .
关于django - 图像未在 Django 中上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52888377/