2012-04-13 2 views
1

jquery 양식 플러그인 http://jquery.malsup.com/form/#getting-started을 사용하여 장고 서버 측에 이미지를 업로드하고 있습니다. 오류는 없지만 이미지는 MEDIA_ROOT 경로에 저장되지 않습니다. 나는 지난 2 일 동안 다양한 기술 (플러그인 시도)을 시도했지만 아무 것도 작동하지 않습니다. 아래 나는 당신을 위해 쉽게 모든 것을주었습니다. Django jquery ajax 이미지 업로드

내 HTML 코드 :

<form id="uploadform" method="post" enctype="multipart/form-data" action="background/"> 
<input type="file" name="photoimg" id="photoimg" /> 
</form> 

자바 스크립트 코드 :

https://gist.github.com/2377516

장고 Models.py :

class BackgroundModel(models.Model): 
    user = models.OneToOneField(User) 
    background = models.ImageField(upload_to='backgrounds') 

장고 views.py :

def backgroundview(request): 
     if request.is_ajax(): 
      b = request.POST.get('photoimg')   
     try: 
      g = BackgroundModel.objects.get(user=request.user) 
     except BackgroundModel.DoesNotExist: 
      bm = BackgroundModel(background=b) 
      bm.user = request.user 
      bm.save() 
     else: 
      g.background = b 
      g.save() 
     return HttpResponse("") 

장고 settings.py :

MEDIA_ROOT = '/home/nirmal/try/files/' 
MEDIA_URL = 'http://localhost:8000/files/' 

장고의 urls.py는 :

url(r'^cover/$', login_required(direct_to_template), {'template': 'cover.html'}), 
url(r'^cover/background/$', 'cover.views.backgroundview'), 

누구든지 나를 도울 수

?

감사합니다.

답변

2

파일 요청 있음. 파일 요청 없음. b에 실제로 값이 있다는 것을 결코 확인하지 못하기 때문에 오류가 표시되지 않습니다. 배경이 null 일 수 없다는 오류가 표시되지 않는다고 놀랍지 만.

또한 ModelForm을 사용해보십시오. 코드를 작성해야하는 많은 동작을 마무리합니다.

+0

정말 고마워요. 하지만 Background = null 인 이유는 무엇입니까? – rnk

+0

'request.POST.get ('photoimg')는 코드에 None을 반환합니다. – John

+0

여기 좀 도와 주시겠습니까? http://stackoverflow.com/questions/10150301/django-model-has-no-attribute-committed – rnk