0

私は私の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}) 

およびforms.pyihave

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)

フォームを送信しようとすると、

/ status-set / save()のTypeErrorは、少なくとも2つの非キーワード引数(1つ指定)を取ります。iamはその解決策を見つけることができません。これの考えられる理由は何ですか私は引数としてIPアドレスを渡さなければならないと思います提案

4

1 に答える 1

2

ip_addressパラメーターは必須であるため、以下を指定する必要があります。

register.save(ip_address)

また、実際にはメソッド内でip_addressパラメーターを使用しているようには見えません。おそらくip_address、呼び出しているメソッドに引用符を付けないでください。

lat, lon = g.lat_lon(ip_address)
于 2010-11-27T23:36:08.587 に答える