2013-07-15 1 views
1

나는 책 세부 정보를 저장하는 웹 사이트를 만들고 있습니다. 사진 필드가있는이 모델 책이 있습니다.이 사이트를 배포하기 위해 Google 애플리케이션 엔진을 사용하고 있습니다. 이미지 i를 저장하려면 '사진'이이 함수 오류에 대한 잘못된 키워드 인수입니다 ..... 잘못된 점을 찾아 낼 수 없습니다.'photo'는이 기능 오류에 대한 잘못된 키워드 인수입니다.

def addbook(request): 
if request.user.is_authenticated(): 
    results=book.objects.filter(selleruserid=request.session["user_id"]).order_by('-id'); 
    if request.method == 'POST': 
     photo_blobs =get_uploads(request, field_name='image',populate_post=True) 
     form = addbookform(request.POST,request.FILES) 
     if form.is_valid() and len(photo_blobs) == 1: 

      cd=form.cleaned_data 
      d = book(photo=photo_blobs[0],selleruserid=request.session["user_id"],mrp=cd['mrp'],categories=cd['categories'],branch=cd['branch'],flag="Available",bookname=cd['bookname'],author=cd['author'],publisher=cd['publisher'],rentprice=cd['rentprice'],price=cd['price'],description=cd['description'],genre=cd['genre']) 
      d.save() 
     return render_to_response('sellbook.html',{'notif':request.session["notif"],'count':request.session["count"],'user':request.user,'form':form,'notif1':request.session["notif1"],'results':results},context_instance=RequestContext(request)) 
    else: 
     form = addbookform() 
     results = book.objects.filter(selleruserid=request.session["user_id"]) 
    return render_to_response('sellbook.html',{'upload_url':blobstore.create_upload_url('/sellbook'),'user':request.user,'notif':request.session["notif"],'count':request.session["count"],'form':form,'notif1':request.session["notif1"],'results':results}, context_instance=RequestContext(request)) 
else: 
    return HttpResponseRedirect('/redirecting') 


def get_uploads(request, field_name=None, populate_post=False): 
"""Get uploads sent to this handler. 

Args: 
    field_name: Only select uploads that were sent as a specific field. 
    populate_post: Add the non blob fields to request.POST 

Returns: 
    A list of BlobInfo records corresponding to each upload. 
    Empty list if there are no blob-info records for field_name. 
""" 

if hasattr(request,'__uploads') == False: 
    request.META['wsgi.input'].seek(0) 
    fields = cgi.FieldStorage(request.META['wsgi.input'], environ=request.META) 

    request.__uploads = {} 
    if populate_post: 
     request.POST = {} 

    for key in fields.keys(): 
     field = fields[key] 
     if isinstance(field, cgi.FieldStorage) and 'blob-key' in field.type_options: 
      request.__uploads.setdefault(key, []).append(blobstore.parse_blob_info(field)) 
     elif populate_post: 
      request.POST[key] = field.value 

if field_name: 
    try: 
     return list(request.__uploads[field_name]) 
    except KeyError: 
     return [] 
else: 
    results = [] 
    for uploads in request.__uploads.itervalues(): 
     results += uploads 
    return results 

도서 모델 :

class book(models.Model): 
    selleruserid=models.CharField(max_length=30,editable=False,blank=False) 
    bookname=models.CharField(max_length=100,blank=False) 
    author=models.CharField(max_length=20,blank=False) 
    publisher=models.CharField(max_length=10,blank=True) 
    price=models.IntegerField(max_length=25,blank=True,null=True) 
    rentprice=models.IntegerField(max_length=25,blank=True,null=True) 

    photo= blobstore.BlobReferenceProperty() 
    description=models.CharField(max_length=200,blank=True,null=True) 
    mrp=models.IntegerField(max_length=10,blank=True,null=True) 
    categories=models.CharField(max_length=20,choices=BOOK_CHOICES) 
    genre=models.CharField(max_length=20,choices=GENRE_CHOICES,blank=True) 
    branch=models.CharField(max_length=20,choices=BRANCH_CHOICES,blank=True) 
    flag=models.CharField(max_length=10,editable=False,choices=FLAG_CHOICES) 

    class Meta: 
     db_table = 'book' 
+0

오류가 발생하고 있습니까? 그렇다면 무엇입니까? –

+0

'photo'는이 함수의 잘못된 키워드 인수입니다.이 형식을 제출하면 오류가 발생합니다. – Shubham

+1

또한이 코드의 형식이 잘못되었습니다. 사람들이 답변하고 유사한 문제가있는 사람들을 도울 때 도움이되므로 5 분을 보내야합니다. –

답변

0

사진 필드없이 모델 (d.save()을) 절약의 첫 번째 시도, 그리고 사진 필드 업데이 트를 저장 유일의 후. 이것은 다음과 유사해야합니다 :

d = book(selleruserid=request...) # No photo field here 
d.save() 
d.photo = photo_blobs[0] 
d.save()