Python 图像未通过表单上传

Python 图像未通过表单上传,python,django,pythonanywhere,imagefield,Python,Django,Pythonanywhere,Imagefield,我正在制作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

我正在制作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')

当我添加新书时,我得到一个错误“字段是必需的”,可能是封面字段,但添加了图像。这在本地服务器上正常工作,但在pythonanywhere.com上不起作用

您必须更改代码

form = BookAdd(request.POST or None)

并且您的表单应具有enctype=“多部分/表单数据”


您必须更改代码

form = BookAdd(request.POST or None)

并且您的表单应具有enctype=“多部分/表单数据”



非常感谢,它正在工作,文件上传没有问题。但是现在表单显示该字段是必需的,它必须是必需的吗?您的字段应该是null=True,blank=True ex:cover=models.ImageField(上传到class='img/bookcover',null=True,blank=True)非常感谢您,它正在工作,文件上传没有问题。但是现在表单显示该字段是必需的,它必须是必需的吗?您的字段应该是null=True,blank=True ex:cover=models.ImageField(上传到='img/bookcover',null=True,blank=True)
<form action="." method="post" enctype="multipart/form-data">