|
1
|
|
|
import inspect |
|
2
|
|
|
import sys |
|
3
|
|
|
|
|
4
|
|
|
from django.contrib import admin |
|
5
|
|
|
|
|
6
|
|
|
from chat import models |
|
7
|
|
|
from chat.models import UserJoinedInfo |
|
8
|
|
|
|
|
9
|
|
|
|
|
10
|
|
|
exclude_auto = ('UserJoinedInfo',) |
|
11
|
|
|
model_classes = (class_name[1] for class_name in inspect.getmembers(sys.modules[models.__name__], inspect.isclass) |
|
12
|
|
|
if class_name[1].__module__ == models.__name__ and class_name[0] not in exclude_auto) |
|
13
|
|
|
for model in model_classes: |
|
14
|
|
|
fields = [field.name for field in model._meta.fields if field.name not in ("password")] |
|
15
|
|
|
admin.site.register(model, type('SubClass', (admin.ModelAdmin,), {'fields': fields, 'list_display': fields})) |
|
16
|
|
|
|
|
17
|
|
|
@admin.register(UserJoinedInfo) |
|
18
|
|
|
class UserLocation(admin.ModelAdmin): |
|
19
|
|
|
list_display = ['username', 'country', 'region','city','provider', 'time', 'ip'] |
|
20
|
|
|
|
|
21
|
|
|
def region(self, instance): |
|
22
|
|
|
return instance.ip.region |
|
23
|
|
|
|
|
24
|
|
|
def country(self,instance ): |
|
25
|
|
|
return instance.ip.country |
|
26
|
|
|
|
|
27
|
|
|
def city(self, instance): |
|
28
|
|
|
return instance.ip.city |
|
29
|
|
|
|
|
30
|
|
|
def provider(self,instance): |
|
31
|
|
|
return instance.ip.isp |
|
32
|
|
|
|
|
33
|
|
|
def username(self, instance): |
|
34
|
|
|
return instance.anon_name or instance.user |