我的问题类似于this问题,使用geoip通过IP地址查找用户的latitide和经度。我在我的观点中做了类似的事情
g=Geoip()
lat,lon=g.lat_lon(some ip)
这里我想要自动填写表单字段
之类的东西 latitude=lat
longitude=lon
userform.save()
并且不想覆盖保存方法,因为我对django相当新,并且不知道它们是如何工作的。我尝试了上面的链接代码,但无法使它适合我。 我如何自动填充views.py
中的纬度和经度字段答案 0 :(得分:5)
啊,只是潜入。除非你做一些非常愚蠢的事情,否则你不会伤害任何事情。顺便说一下,“愚蠢”包括在生产站点上使用未备份的数据库执行此操作。
要记住的重要一点是,你不是覆盖 save()
方法,你提供了一个特定于类的版本,它可以反过来调用父代的save()
方法。 E.g。
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
或者,您可以先调用super()
,然后再执行操作。如果您的所有常规操作都是super()
,那么您将拥有正确的(但无用的)save()
方法。
有关更多见解/信息,请参阅the Python docs。