【问题标题】:trying to auto populate fields using django views尝试使用 django 视图自动填充字段
【发布时间】:2010-12-13 22:31:35
【问题描述】:

我的问题类似于this question em 使用 geoip 通过 IP 地址查找用户的纬度和经度。在我看来,我正在做这样的事情

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

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

 latitude=lat
 longitude=lon
 userform.save()

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

【问题讨论】:

    标签: django django-views geoip


    【解决方案1】:

    啊,直接跳进去。除非你做一些非常愚蠢的事情,否则你不会伤害任何东西。顺便说一句,“愚蠢”包括在您的生产站点上使用未备份的数据库执行此操作。

    要记住的重要一点是,您并没有覆盖 save() 方法,而是提供了它的特定于类的版本,而该版本又可以调用父级的 @987654323 @ 方法。例如

    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

    【讨论】:

    • 这听起来很奇怪,但我应该在views.py中写什么
    • 我不确定我是否理解您的问题。你可以在你的视野中写任何你喜欢的东西;这只是代码。我假设(总是一件坏事)你的 some ip 值是 in 表单(你没有说它来自哪里)并且你想在你做的时候自动填充额外的模型字段save().
    猜你喜欢
    • 2011-05-23
    • 2016-12-22
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多