【发布时间】:2017-07-10 06:14:18
【问题描述】:
我希望用户在个人资料页面上上传个人资料图片,但它没有将其存储在 media/documents 文件夹中,是的,我已将 enctype="multipart/form-data" 放入 html 表单和方法是post。我是 django 新手,所以请提供一个简单的解决方案
models.py
class User(models.Model):
first_name=models.CharField(max_length=20)
last_name=models.CharField(max_length=20)
username=models.CharField(max_length=25, primary_key=True)
password=models.CharField(max_length=15)
email_id=models.CharField(max_length=30, default='NULL')
profile_pic=models.ImageField(upload_to='profilepics/%Y/%m/%d/',height_field=200,width_field=200,default='')
forms.py
class ProfilePicForm(forms.ModelForm):
class Meta:
model=User
fields=['username','profile_pic']
views.py
def upload(request):
if request.method == 'POST':
username=request.POST['username']
m=User(username=username)
m.profile_pic=request.FILES['profile_pic']
m.save()
return render(request,'LoginPage/done.html')
else:
pic=ProfilePicForm()
return render(request,'AfterLogin/profile.html')
html文件
<form method="POST" enctype="multipart/form-data" action="{% url 'LoginPage:upload' %}">
{% csrf_token %}
<p>Upload your profile photo</p><br>
<input id="id_image" type="file" class="" name="image">
<input type="hidden" name="username" value="{{ username }}">
<input type="submit" value="Submit"/>
</form>
【问题讨论】:
-
当代码中的某些内容不起作用时,最好发布错误代码。
-
你的设置文件是怎么配置的?
-
没有任何错误。它只是不保存照片
-
MEDIA_URL='/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
-
即使我删除了 try 和 except 语句,也没有任何相关的错误。我得到的只是这个内部服务器错误:/favicon.ico Traceback(最近一次调用最后一次):“改为返回无。” % (callback.__module__, view_name) ValueError: 视图 LoginPage.views.upload 没有返回 HttpResponse 对象,但我认为它不相关
标签: python django django-models django-forms image-uploading