图片未通过表单上传
Image is not uploading via form
我正在制作 django 项目,但在以表格形式上传图片时遇到一个问题。
所以,我尝试添加一个带有图像的对象,在管理员中这是有效的,但在现场的表单中 - 不是。
我的观点:
def newbook(request, user_id):
form = BookAdd(request.POST or None)
if form.is_valid():
book = form.save(commit=False)
book.author = get_object_or_404(User, pk=user_id)
book.save()
return redirect('../%s' % book.id)
return render(request, 'userbook/newbook.html', {'form': form})
我的模特:
class Book(models.Model):
"""Book is a compilation of sections with subjects."""
author = models.ForeignKey(AUTH_USER_MODEL)
name = models.CharField(max_length=100)
description = models.CharField(blank=True, max_length=256)
cover = models.ImageField(upload_to='img/bookcovers')
def __str__(self):
return self.name
我的表格:
class BookAdd(ModelForm):
class Meta:
model = Book
fields = ('name', 'description', 'cover')
当我添加新书时,出现错误 "the field is required",可能是关于封面,但添加了图片。这在本地服务器上确实有效,但不适用于 pythonanywhere.com
您必须更改代码
form = BookAdd(request.POST or None)
至
form = BookAdd(request.POST,request.FILES)
你的表单应该有 enctype="multipart/form-data"
<form action="." method="post" enctype="multipart/form-data">
我正在制作 django 项目,但在以表格形式上传图片时遇到一个问题。
所以,我尝试添加一个带有图像的对象,在管理员中这是有效的,但在现场的表单中 - 不是。
我的观点:
def newbook(request, user_id):
form = BookAdd(request.POST or None)
if form.is_valid():
book = form.save(commit=False)
book.author = get_object_or_404(User, pk=user_id)
book.save()
return redirect('../%s' % book.id)
return render(request, 'userbook/newbook.html', {'form': form})
我的模特:
class Book(models.Model):
"""Book is a compilation of sections with subjects."""
author = models.ForeignKey(AUTH_USER_MODEL)
name = models.CharField(max_length=100)
description = models.CharField(blank=True, max_length=256)
cover = models.ImageField(upload_to='img/bookcovers')
def __str__(self):
return self.name
我的表格:
class BookAdd(ModelForm):
class Meta:
model = Book
fields = ('name', 'description', 'cover')
当我添加新书时,出现错误 "the field is required",可能是关于封面,但添加了图片。这在本地服务器上确实有效,但不适用于 pythonanywhere.com
您必须更改代码
form = BookAdd(request.POST or None)
至
form = BookAdd(request.POST,request.FILES)
你的表单应该有 enctype="multipart/form-data"
<form action="." method="post" enctype="multipart/form-data">