为什么我不能在 Ubuntu 服务器上运行的 Django 中上传和保存图像?



所以我有一个Django应用程序在Ubuntu和nginx上运行。我已经完成了上传图像所需的一切,并且有一个带有上传图像输入字段的模板。事实上,这个过程中没有任何错误,但当我保存它时,我没有看到Django管理员中附加任何文件。让我向您展示我的代码,然后进一步解释:
mdoels.py

class ArticleInput(models.Model):
objects = models.Manager()
...
img = models.ImageField(null=True, blank=True, upload_to="article_img")

forms.py

class ArticleInputForm(forms.ModelForm):
...
img = forms.ImageField(required=False)
class Meta:
model=ArticleInput
fields=['title', 'img', 'subtitle', 'contents']

views.py

def articleinput(request):
form = DansangInputForm(initial={'authuser':request.user})
if request.method == 'POST':
form = ArticleInputForm(request.POST, request.FILES)
if form.is_valid():
instance = form.save(commit=False)
instance.authuser = request.user

instance.img= request.FILES.get('img')
...
instance.save()
return redirect('/article/articlemain')
return render(request,'article/articleinput.html', {'form':form})

articleimput.html

<form method="post" class="form-group">
{% csrf_token %}
...
<div class="row">
<div class="col col-12">
<div class="input-img">{{form.img|as_crispy_field}}</div>
</div>
</div>
...
<div class="row">
<div class="col">
<button type='submit' class="btn all-buttons">
Save
</button>
</div>
</div>

我的settings.py没有问题,相信我,我还完成了chmod -R 777命令,用于向我的所有用户授予权限

如前所述,在整个过程中一切都很顺利。我没有收到错误消息,但当我附加一个图像文件并点击";保存";并在Django admin中检查对象,img字段为空。我想views.py有问题,但我看不到任何问题。请帮忙。提前非常感谢

如果您有一个图像或文件,则需要在表单标记中添加enctype

<form method="POST" enctype="multipart/form-data">

最新更新