TypeError save () принимает как минимум 2 аргумента без ключевых слов (1 дан) - PullRequest
0 голосов
/ 28 ноября 2010

у меня есть в моих views.py

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

и в форм.пи ihave

from django.contrib.gis.utils import GeoIP


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

        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)

и когда я попытался отправить форму, там написано

TypeError at / status-set / save () принимает как минимум 2 аргумента без ключевых слов (1 дан) Я не могу найти решение для этого. какова возможная причина этого я думаю, что я должен передать IP-адрес в качестве аргумента любые предложения

1 Ответ

2 голосов
/ 28 ноября 2010

Параметр ip_address является обязательным, поэтому вы должны указать его:

register.save(ip_address)

Кроме того, фактически вы не используете параметр ip_address внутри метода.Вероятно, вы не должны иметь кавычки около ip_address в методе, который вы вызываете:

lat, lon = g.lat_lon(ip_address)
...