当我提交一个jpg图像时,它刷新并显示“这个字段需要”验证错误,所以在我试图打印(request.POST)的视图中,它在控制台中显示csrfmiddlewaretoken和pic,但是字段验证被违反了。请纠正我。
models.py
from django.db import models
class picture(models.Model):
pic = models.ImageField(upload_to='documents/')forms.py
from django import forms
from .models import picture
class pictureForm(forms.ModelForm):
class Meta:
model = picture
fields = ['pic',]views.py
from django.shortcuts import render,redirect
from .models import picture
from .forms import pictureForm
# Create your views here.
def pictureView(request):
if request.method == 'POST':
print(request.POST)
form = pictureForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
else:
form = pictureForm()
return render(request,'home.html',{'form':form})Urls.py(应用程序级urls)
from django.urls import path
from . import views
urlpatterns = [
path('',views.pictureView, name = 'home')
]Urls.py(目录级urls)
from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('post.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)媒体文件
MEDIA_URL ='/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')模板
<form method="post">
{% csrf_token %}
{{form.as_p}}
<input value="submit" type="submit">
</form>发布于 2018-06-02 11:54:53
基于doc:上传-带模型的文件
您应该初始化您的表单:
form = pictureForm(request.POST, request.FILES)在模板中,您需要添加Enctype=“多部分/表格-数据”
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{form.as_p}}
<input value="submit" type="submit">
</form>https://stackoverflow.com/questions/50656576
复制相似问题