fix geoip
This commit is contained in:
parent
56fa177dd4
commit
959c3de520
|
@ -126,6 +126,4 @@ LOGGING = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#GEOIP_PATH = environ["GEOIP_PATH"]
|
GEOIP_PATH = environ["GEOIP_PATH"]
|
||||||
#GEOIP_COUNTRY = "GeoIP.dat"
|
|
||||||
#GEOIP_CITY = "GeoIPCity.dat"
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ class SignupAdmin(admin.ModelAdmin):
|
||||||
_all_fields = ["email", "created_at", "anonymized_ip", "user_agent"]
|
_all_fields = ["email", "created_at", "anonymized_ip", "user_agent"]
|
||||||
|
|
||||||
date_hierarchy = "created_at"
|
date_hierarchy = "created_at"
|
||||||
list_display = ["email", "created_at", "anonymized_ip", "user_agent"]# + ["country"]
|
list_display = ["email", "created_at", "anonymized_ip", "user_agent"] + ["country_code"]
|
||||||
list_filter = ["email", "user_agent"]
|
list_filter = ["email", "user_agent"]
|
||||||
ordering = ["created_at"]
|
ordering = ["created_at"]
|
||||||
readonly_fields = _all_fields
|
readonly_fields = _all_fields + ["country_name"]
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from django.db import models
|
import geoip2
|
||||||
|
|
||||||
#from django.contrib.gis.geoip2 import GeoIP2
|
from django.db import models
|
||||||
|
from django.contrib.gis.geoip2 import GeoIP2
|
||||||
|
|
||||||
class Signup(models.Model):
|
class Signup(models.Model):
|
||||||
email = models.EmailField()
|
email = models.EmailField()
|
||||||
|
@ -16,6 +17,14 @@ class Signup(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.email
|
return self.email
|
||||||
|
|
||||||
#def country(self):
|
def _country(self):
|
||||||
# g = GeoIP2()
|
try:
|
||||||
# return g.country(self.anonymized_ip)
|
return GeoIP2().country(self.anonymized_ip)
|
||||||
|
except geoip2.errors.AddressNotFoundError:
|
||||||
|
return {}
|
||||||
|
|
||||||
|
def country_name(self):
|
||||||
|
return self._country().get("country_name", "??")
|
||||||
|
|
||||||
|
def country_code(self):
|
||||||
|
return self._country().get("country_code", "??")
|
||||||
|
|
10
flake.nix
10
flake.nix
|
@ -41,21 +41,21 @@
|
||||||
libmaxminddb
|
libmaxminddb
|
||||||
];
|
];
|
||||||
geoip = pkgs.stdenv.mkDerivation {
|
geoip = pkgs.stdenv.mkDerivation {
|
||||||
name = geoip;
|
name = "geoip";
|
||||||
srcs = [geoip2-asn geoip2-city geoip2-country];
|
srcs = [geoip2-asn geoip2-city geoip2-country];
|
||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp ${geoip2-asn} $out/
|
cp ${geoip2-asn} $out/GeoLite2-ASN.mmdb
|
||||||
cp ${geoip2-city} $out/
|
cp ${geoip2-city} $out/GeoLite2-City.mmdb
|
||||||
cp ${geoip2-country} $out/
|
cp ${geoip2-country} $out/GeoLite2-Country.mmdb
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
|
LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
|
||||||
#GEOIP_PATH = "${geoip}";
|
GEOIP_PATH = "${geoip}";
|
||||||
packages = devDeps ++ [geoip];
|
packages = devDeps ++ [geoip];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue