2016-09-13 34 views
0

我使用Python 2.7,Django 1.9。爲什麼我的圖片不是以我創建的django表格上傳的?

我想從這個模型/形式對用戶得到的圖像:

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的根: project/static/media/images/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

在前端模板上,您是否在'

'元素上設置了'enctype =「multipart/form-data」'? –

+0

@JamesHiew是的,我是 –

+0

@JamesHiew我添加了前端模板只是爲了確保沒有問題 –

回答

0

我升級到枕頭的最新版本和現在的工作。

相關問題