我正在使用Python 2.7,Django 1.9。
我正在尝试使用此模型/表单对从用户处获取图像:
models.py
from PIL import Image
class UserProfile(models.Model):
user = models.OneToOneField(User)
website = models.URLField(blank=True, null=True)
location = models.CharField(max_length=200, null=True)
longitude = models.FloatField(null=True)
latitude = models.FloatField(null=True)
credit = models.FloatField(default=0, null=True)
picture = models.ImageField(upload_to='media/images/profile_pictures', blank=True, null=True)
def __unicode__(self):
return self.user.username
forms.py
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = [
"website",
"location",
"picture",
]
widgets = {
'location': forms.TextInput(
attrs={'id': 'location', 'class': 'geo', 'required': True, 'placeholder': 'location'}
),
}
使用以下视图保存:
def register(request):
registered = False
if request.method == "POST":
user_form = UserForm(request.POST)
profile_form = UserProfileForm(request.POST, request.FILES)
if user_form.is_valid() and profile_form.is_valid():
print(request.POST['location'])
print(str(request.POST['location']))
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
profile.save()
else:
print user_form.errors, profile_form.errors
else:
profile_form = UserProfileForm()
user_form = UserForm()
return render(request, "register.html", {'user_form' : user_form, 'profile_form' : profil
但执行时,没有图片保存到文件夹中。这是image_urls的根: 项目/静态/媒体/图像/ profile_pictures 有什么想法吗?
编辑:这是html:
{% load static from staticfiles %}
{% block head %}
{% endblock %}
{% block content %}
{% if registered %}
<h1>Thank you for registering.</h2><br>
<a href="dashboard">Start playing!</a>
{% else %}
<form id="user_form" method="post" action="/register/" enctype="multipart/form-data">
{% csrf_token %}
{{ user_form.as_p }}
{{ profile_form.as_p }}
<input type="submit" name="submit" value="register" />
</form>
{% endif %}
{% endblock %}
答案 0 :(得分:0)
我已升级到Pillow的最新版本,现在可以使用。