Python DJANGO上传图像不显示DJANGO表单
我在Django有一个简单的auth应用程序,现在我希望身份验证用户可以轻松地从网站的页面上传多个文件 我已经创建了一个多上传Django表单和视图以及html表单,我不确定我的代码是否完美——第一次使用auth,但无论如何都不起作用 在html页面中,不显示上传表单,只显示提交按钮,不执行任何操作 model.pyPython DJANGO上传图像不显示DJANGO表单,python,html,django,python-2.7,django-forms,Python,Html,Django,Python 2.7,Django Forms,我在Django有一个简单的auth应用程序,现在我希望身份验证用户可以轻松地从网站的页面上传多个文件 我已经创建了一个多上传Django表单和视图以及html表单,我不确定我的代码是否完美——第一次使用auth,但无论如何都不起作用 在html页面中,不显示上传表单,只显示提交按钮,不执行任何操作 model.py class MyModel(models.Model): user = models.ForeignKey(User, unique=True) upload =
class MyModel(models.Model):
user = models.ForeignKey(User, unique=True)
upload = models.ImageField(upload_to='upload')
views.py
@login_required
def upload_images(request):
uploadimages = UploadImagesForm(request.POST or None, request.FILES or None)
if uploadimages.is_valid():
# Get the images that have been browsed
if request.FILES.get('multipleimages', None):
images = request.FILES.getlist('multipleimages')
for image in images:
MyModel.objects.create(user=request.user.id, images=image)
else:
pass
else:
raise Http404
return render(request, 'home.html', {'UploadImagesForm':UploadImagesForm })
forms.py
class UploadImagesForm(forms.Form):
multipleimages = forms.ImageField(label="Upload Multiple Images:",widget=forms.ClearableFileInput(attrs={'multiple': True}), required=False)
html
{%extends'base.html%}
{%block content%}
你好
{%csrf_令牌%}
{{UploadImagesForm}}
{%endblock%}
图像无效时,您将弹出404页。这对用户体验不是很友好
更改为:
@login_required
def upload_images(request):
uploadimages = UploadImagesForm(request.POST or None, request.FILES or None)
if uploadimages.is_valid():
# Get the images that have been browsed
if request.FILES.get('multipleimages', None) is not None:
images = request.FILES.getlist('multipleimages')
for image in images:
MyModel.objects.create(user=request.user, upload=image)
return render(request, 'home.html', {'UploadImagesForm':UploadImagesForm })
当图像无效时,您正在提升404页。这对用户体验不是很友好 更改为:
@login_required
def upload_images(request):
uploadimages = UploadImagesForm(request.POST or None, request.FILES or None)
if uploadimages.is_valid():
# Get the images that have been browsed
if request.FILES.get('multipleimages', None) is not None:
images = request.FILES.getlist('multipleimages')
for image in images:
MyModel.objects.create(user=request.user, upload=image)
return render(request, 'home.html', {'UploadImagesForm':UploadImagesForm })
真奇怪。我在本地进行了测试,效果很好。尝试将
{{UploadImagesForm}
置于{%block content%}之外
查看它是否被渲染。是的,thnx您现在是正确的,请向我显示格式,但不工作我有此错误积分错误/UNIQUE约束失败:log\u mymodel。用户id
视图中的id是否错误?这是因为违反了UNIQUE=True
。您传递的是同一个用户,因此您的数据库有问题!如何修复?unique=False?这是错误的事情?告诉我你的建议因为用户可能有多张照片,那么是的,你应该完全删除unique=True
(默认值为False
)。这很奇怪。我在本地进行了测试,效果很好。尝试将{{UploadImagesForm}
置于{%block content%}之外
查看它是否被渲染。是的,thnx您现在是正确的,请向我显示格式,但不工作我有此错误积分错误/UNIQUE约束失败:log\u mymodel。用户id
视图中的id是否错误?这是因为违反了UNIQUE=True
。您传递的是同一个用户,因此您的数据库有问题!如何修复?unique=False?这是错误的事情?告诉我你的建议因为一个用户可能有多张照片,那么是的,你应该完全删除unique=True
(默认为False
)。