首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python/Django从IP获取国家标志

Python/Django从IP获取国家标志
EN

Stack Overflow用户
提问于 2014-10-01 21:24:00
回答 2查看 1.7K关注 0票数 0

我正在使用django-countries从CountryField获取一个旗帜,它起作用了。然而,一些用户的个人资料中没有设置国家,但我仍然必须显示一面旗帜。我的想法是从IP得到一个国家,然后从这个国家得到一个旗帜或任何类似的东西。

不幸的是,这不会在视图中发生,所以我没有请求。我可以在模板中设置IP,然后在后台检查是否没有找到标志(如果没有提供国家/地区),然后以某种方式使用我从模板中获得的IP来获得标志。这样的事情有可能发生吗?如果需要,GeoDjango已经包含在项目中。

也许有一种完全不同的方式来做这件事,但我是Django的新手,还在学习。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-10-01 21:41:07

首先,您应该在视图中查找国家/地区,而不是模板。视图应该完成所有的数据库工作和业务逻辑,模板只是以最好的方式显示视图获取的内容。如果你想把它应用到,比如说,每一个页面上,那么考虑使用上下文处理器。

关于从IP获取国家,这个问题解释了它:Django, Retrieve IP location

票数 0
EN

Stack Overflow用户

发布于 2014-10-01 21:54:53

就我个人而言,我会设置一个通用标志作为后备(也许是django标志?)如果用户没有设置他们国家,公平地说,如果用户没有设置,必须有一个原因。或者你可以简单地将国家字段设为必填项。

假设那个国家的人基于他们现有的IP地址听起来是不对的。想象一下,如果您正在通过VPN远程工作或在代理服务器后面工作...你明白了吧。

如果您只是想将用户重定向到基于IP子域(不同语言)站点,这会更有意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26142468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档