2010-12-10 45 views
0

我試圖自動填充在我的形式 我這樣試圖在Django自動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}) 

但是當我嘗試提交它說的形式「保存()至少需要2個非關鍵字參數(1給出)」的錯誤是在這裏「register = rform.save(commit=False)"我EM無法弄清楚 任何幫助將是非常感謝他們使用django 1.1.1和GeoIP的

回答

0

看看你save定義您registerForm - 你添加ipaddress作爲參數,但在你看來你是不是傳遞它如果你想保持通話save()你現在的樣子,使您的函數定義中的ipaddress=None或您可以處理的其他一些默認值。

+0

紅豆杉請給我一個關於如何將視圖中的參數傳遞給表單的例子 – MajorGeek 2010-12-10 20:06:16

+0

當你調用rform.save()時,傳入ip地址 - 像這樣:'reg = rform.save(ipaddress = request.META。 GET('REMOTE_ADDR'),commit = False)' – girasquid 2010-12-10 20:28:03

+0

仍然是同樣的錯誤我可以得到任何關於傳遞參數和** kwargs或任何關於如何將參數傳遞給窗體的教程或文檔 – MajorGeek 2010-12-10 20:39:32