2010-12-13 74 views
1

我的問題類似於this問題em使用geoip通過IP地址查找用戶的latitide和longitude。我正在做這樣的事情在我的觀點試圖使用Django視圖自動填充字段

g=Geoip() 
lat,lon=g.lat_lon(some ip) 

在這裏,我想表單字段的自動 像

latitude=lat 
longitude=lon 
userform.save() 

填補,不想覆蓋保存方法,我是相當新django,不知道他們是如何工作的。我嘗試了上面的鏈接代碼,但無法使它適用於我。 我怎麼能自動填充views.py中的緯度和經度字段

回答

4

啊,只是潛入其中。除非你做的事情真的很愚蠢,否則你不會傷害任何東西。順便說一句,「愚蠢的」包括在您的生產站點上使用未備份的數據庫進行此操作。

需要記住的重要一點是,你不覆蓋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 

或者,你可以調用super()第一,然後做的東西之後。如果你的日常工作是打電話給super(),你會有一個正確的(但是沒用)save()方法。

請參閱the Python docs瞭解更多信息。

+0

這聽起來很牛咩咩我應該在views.py中寫什麼 – Rida 2010-12-15 20:49:28

+0

我不知道我明白你的問題是什麼。你可以在你看來寫任何你喜歡的東西;它只是代碼。我認爲(總是一件壞事),你的'some ip'值是*形式的(你沒有說它來自哪裏),並且你想在你執行'save()時自動填充額外的模型域。 '。 – 2010-12-15 23:58:28