пытаясь автоматически заполнять поля, используя представления django - PullRequest
2 голосов
/ 14 декабря 2010

мой вопрос похож на этот вопрос об использовании geoip для определения широты и долготы пользователя по IP-адресу.я делаю что-то подобное в моих представлениях

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

здесь я хочу, чтобы поля форм заполнялись автоматически, что-то вроде

 latitude=lat
 longitude=lon
 userform.save()

и не хочу перезаписывать метод сохранения, так как яЯ довольно новичок в Django и не знаю, как они работают.Я попробовал приведенный выше код ссылки, но не смог заставить его работать на меня.как я могу автоматически заполнить поля широты и долготы в views.py

1 Ответ

5 голосов
/ 14 декабря 2010

Ах, просто погрузись. Если ты не сделаешь что-то действительно глупое, ты не будешь причинять боль.Кстати, «глупость» включает в себя выполнение этого на производственном сайте с резервной копией базы данных.

Важно помнить, что вы не перезаписываете метод 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().

См. документы Python для получения дополнительной информации / информации.

...