Попытка автоматического заполнения полей формы в формах Django - PullRequest
0 голосов
/ 10 декабря 2010

я пытаюсь автоматически заполнить поля широты и долготы в моих формах Я делаю это таким образом

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

но когда я пытаюсь отправить формы, появляется сообщение "save () принимает как минимум 2 аргумента без ключевых слов (1 дано)" ошибка здесь "register = rform.save(commit=False)" Я не могу ее выяснить любая помощь будет принята с помощью django 1.1.1 и GeoIP

1 Ответ

0 голосов
/ 10 декабря 2010

Посмотрите на ваше определение save на вашем registerForm - вы добавили ipaddress в качестве аргумента, но, по вашему мнению, вы его не передаете. Если вы хотите продолжать называть save() способом Теперь введите ipaddress=None в определение функции или другое значение по умолчанию, которое вы можете обработать.

...