1
Fork 0

add "city"

This commit is contained in:
Motiejus Jakštys 2024-01-12 07:43:04 +02:00
parent 762de74ffa
commit a7d1fd83ef
2 changed files with 9 additions and 10 deletions

View File

@ -7,7 +7,7 @@ class SignupAdmin(admin.ModelAdmin):
_all_fields = ["email", "created_at", "anonymized_ip", "user_agent"]
date_hierarchy = "created_at"
list_display = ["email", "created_at", "anonymized_ip", "user_agent"] + ["country_code"]
list_display = ["email", "created_at", "anonymized_ip", "user_agent"] + ["place_name"]
list_filter = ["email", "user_agent"]
ordering = ["created_at"]
readonly_fields = _all_fields + ["country_name"]
readonly_fields = _all_fields + ["place_name"]

View File

@ -17,14 +17,13 @@ class Signup(models.Model):
def __str__(self):
return self.email
def _country(self):
def _city(self):
try:
return GeoIP2().country(self.anonymized_ip)
return GeoIP2().city(self.anonymized_ip)
except geoip2.errors.AddressNotFoundError:
return {}
return None
def country_name(self):
return self._country().get("country_name", "??")
def country_code(self):
return self._country().get("country_code", "??")
def place_name(self):
if city := self._city():
return "{}, {}".format(city["city"], city["country_name"])
return "??"