2010-12-13 7 views
1

meine Frage ist ähnlich wie this Frage em mit GeoIP, um die Längen- und Breitengrad eines Benutzers durch IP-Adresse zu finden. Ich tue so etwas wie dies in meinen Ansichtenversucht, Felder automatisch mit Hilfe von Django Ansichten

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

hier i die Formen Felder wollen in automatisch so etwas wie

latitude=lat 
longitude=lon 
userform.save() 

gefüllt werden und nicht wollen, die speichern Methode zu überschreiben, wie ich ziemlich bin neu zu Django und keine Ahnung davon, wie sie funktionieren. Ich habe versucht, den obigen Link-Code, aber nicht in der Lage, es für mich arbeiten zu lassen. Wie kann ich die Breiten- und Längengrad Felder in views.py

Antwort

4

autopopulieren Ah, tauchen Sie einfach rein. Wenn Sie nicht etwas wirklich dumm tun, werden Sie nichts tun. BTW, "doof", schließt dies mit einer nicht gesicherten Datenbank auf Ihrer Produktionsstätte ein.

Ein wichtiger Punkt ist, sich daran zu erinnern, dass Sie nicht die save() Methode überschrieben wird, sind Sie eine klassenspezifische Version davon liefert, die wiederum, die save() Methode der Eltern nennen. Z.B.

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 

Alternativ können Sie super() zuerst anrufen und dann nachher tun Sachen. Wenn all Ihre Routine war super() Aufruf Sie hätten eine korrekte (aber nutzlos) save() Methode.

Weitere Informationen finden Sie unter the Python docs.

+0

das klingt gud bhut was soll ich schreiben in views.py – Rida

+0

Ich bin mir nicht sicher, ich verstehe, was Ihre Frage ist. Du kannst aus deiner Sicht alles schreiben, was du magst; Es ist nur Code. Ich nahm (immer eine schlechte Sache) an, dass Ihr 'irgendein IP'-Wert * in * der Form war (Sie sagten nicht, woher es kam) und dass Sie zusätzliche Modellfelder automatisch füllen wollten, wenn Sie' save() '. –