2010-12-10 3 views
0

내가 내 폼 나는이 방법

 #forms.py 
     class registerForm(forms.ModelForm): 
      class Meta: 
       model=register 
       fields = ('Availability', 'Status')#'latitude','longitude', 

      def save(self,ip_address, *args, **kwargs): 
       g = GeoIP() 
       lat, lon = g.lat_lon(ip_address) 
       user_location = super(registerForm, self).save(commit=False) 
       user_location.latitude = lat 
       user_location.longitude = lon 
       user_location.save(*args, **kwargs) 

이 일을하고 을의 위도와 경도 필드를 채울 자동으로 노력하고 형성하고 내 의견이 일을

#views.py 
    def status_set(request): 
      if request.method == "POST": 
     ip_address=request.META['REMOTE_ADDR'] 
      rform = registerForm(data = request.POST) 
      if rform.is_valid(): 
       register = rform.save(commit=False) 
       register.user=request.user 
       register.save(ip_address) 
       return render_to_response('home.html') 
     else: 
      rform = registerForm() 
     return render_to_response('status_set.html',{'rform':rform}) 

하지만 난 그것이 말하는 양식을 제출하려고 할 때 오류가 "여기 내가 그들을없는 그것을 알아 내기 위해 어떤 도움이 될 것입니다 register = rform.save(commit=False)"는"저장()는 2 개 이상의 비 - 키워드 인자를 (1 주어진) 소요 " 크게 django 1.1.1을 사용하여 그들을 평가했습니다. 와 GeoIP가

답변

0

registerFormsave 정의를 살펴 보자 -. 인수로 ipaddress을 추가했지만보기에 당신이 그것을 통과하지 않는 당신이 지금하는 방법을 save() 호출 유지하려면, 확인 함수 정의에 ipaddress=None 또는 사용자가 처리 할 수있는 다른 기본값을 지정하십시오.

+0

yew는 양식에서보기에 인수를 전달하는 방법에 대한 예제를 제공합니다. – MajorGeek

+0

rform.save()를 호출하면 ipaddress를 전달합니다. 예 :'reg = rform.save (ipaddress = request.META. ' – girasquid

+0

여전히 동일한 오류가 발생합니다. 자습서 나 args 및 ** kwargs 또는보기에서 양식에 매개 변수를 전달하는 방법에 대한 모든 설명을 전달하는 데 대한 설명서를 얻을 수 있습니까? – MajorGeek