尝试使用Django视图自动填充字段

Rid*_*ida 2 django django-views geoip

我的问题是,类似这样的问题使用geoip的发现通过IP地址的用户的latitide和经度他们。我认为我正在做这样的事情

g=Geoip()
lat,lon=g.lat_lon(some ip)
Run Code Online (Sandbox Code Playgroud)

在这里,我希望自动填写表单字段,例如

 latitude=lat
 longitude=lon
 userform.save()
Run Code Online (Sandbox Code Playgroud)

并不想覆盖save方法,因为我对django相当陌生,并且不知道它们如何工作。我尝试了上面的链接代码,但无法使其对我有效。我如何自动填充views.py中的纬度和经度字段

Pet*_*ell 5

啊,就去潜水吧。除非您做一些愚蠢的事情,否则您不会受到任何伤害。顺便说一句,“愚蠢”包括在生产站点上使用未备份的数据库执行此操作。

要记住的重要一点是,您并未覆盖save()方法,而是提供了该方法的特定于类的版本,该版本可以依次调用父save()方法。例如

class MyModel(models.Model):
   ...
   def save(self):
      # whatever you need to do to the object before the save
      super(MyModel, self).save() # replace MyModel with *your* class name
Run Code Online (Sandbox Code Playgroud)

或者,您可以super()先致电,然后再处理。如果您的例程所做的全部是调用,super()您将有一个正确的(但无用的)save()方法。

有关详细信息/信息,请参见Python文档