2013-08-15 2 views
1

Я пытаюсь загрузить изображение с помощью Django, и ошибок нет. Но в папке со СМИ нет файлов или каталогов. И кроме поля изображения все остальные поля обновляются в table.Загрузить изображение с помощью Django

Models.py

from django.db import models 

# Create your models here. 
class Player_Profile(models.Model): 
    name=models.CharField(max_length=50, null=True) 
    email=models.EmailField(max_length=50) 
    profile_picture=models.ImageField(upload_to='profile_picture/%y%m%d', blank=True, null=True) 
    age = models.BooleanField() 

views.py

from django.shortcuts import render_to_response 
    from django.template import RequestContext 
    from upload.models import Player_Profile 
    def home(request): 
     return render_to_response('upload/index.html',context_instance=RequestContext(request)) 
    def submit(request): 
     if request.method == 'POST': 
      username=request.POST.get('username') 
      email=request.POST.get('email') 
      age=request.POST.get('age') 
      pic=request.FILES.get('myfile') 
      profile_obj=Player_Profile(profile_picture=pic,name=username, email=email,age=age).save() 
     return render_to_response('upload/welcome.html',context_instance=RequestContext(request)) 

index.html

<form action="/upload/submit/" method="POST" encrypt="multipart/form-data"> 
     {% csrf_token %} 
     User Name :<input type="text" name="username" id="usrname"/><br/> 
     Age :<input type="text" name="age" id="age"/><br/> 
     Email :<input type="email" name="email"> 
     <input type="file" name="myfile" /><br/> 
     <input type="submit" name="submit" value="Upload" /> 

и внутри Настрой gs

MEDIA_ROOT = '/home/mridul/Desktop/Django/interim/pic/uploadpic/media' 

MEDIA_URL = '/media/' 

и вручную создать медиа-каталог внутри каталога uploadpic.

+0

(не имеет отношения к вопросу, но) вы также должны проверить, есть ли форма is_valid, нет? – DRC

ответ

1

Это не так:

<form action="/upload/submit/" method="POST" encrypt="multipart/form-data"> 

это

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

т.е. enctype не encrypt

Как и в сторону, вы должны использовать Form или ModelForm, чтобы сделать это, он будет make your life much easier.

Смежные вопросы