2010-12-10 11 views
0

を形成して、私はautoにしようとしている私の形で緯度と経度フィールドを移入 私はこのようはジャンゴの自動車popolateフォームフィールドにしようと

 #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}) 

が、私はそれが言うのフォームを提出しようとすると、エラーが「ここで私はEMができ をそれを把握するために、任意のヘルプはなりregister = rform.save(commit=False)"である「セーブ()は、少なくとも2非キーワード引数を(1が与えられた)かかり」大いに感謝して使用するdjango 1.1.1そして、のGeoIP

答えて

0

はあなたregisterForm上ごsave定義を見てみましょう - あなたは、引数としてipaddressを追加しましたが、あなたのビューで、あなたはそれを渡していないあなたは今のsave()方法を呼び出す維持したい場合は、作ります。関数定義内のipaddress=None、または処理できる他のデフォルト値。

+0

私は、フォームにビューの引数を渡す方法の例を教えてください。 – MajorGeek

+0

rform.save()を呼び出すときに、ipaddressを渡します: 'reg = rform.save(ipaddress = request.META。ビュー – girasquid

+0

まだ同じエラー私は引数を渡すことについてのチュートリアルやドキュメントを取得することができますし、** - 私のミス。あなたのモデルに '' register.save(IP_ADDRESS)を呼び出しているとき、問題がある - のコードを保存し、フォームは結構ですが、あなたはあなたの 'register'モデルの'保存() 'メソッドを見てする必要があります。 – MajorGeek

関連する問題