Как я могу добавить небольшой фрагмент кода, который использует запрос и запускается, когда кто-то получает доступ к странице администратора django? - PullRequest
0 голосов
/ 27 августа 2018

Как я могу добавить небольшой фрагмент кода, который запускается, когда кто-то получает доступ к странице администратора. Я пытаюсь получить IP-адрес пользователей, которые используют администратор, и внести изменения в базу данных. Я могу использовать django signals, чтобы увидеть, когда будут внесены изменения, но мне нужен доступ к django request, чтобы получить доступ к IP-адресу пользователя. Я подумал, что простым способом было бы просто добавить фрагмент кода в admin views, где я бы запросил IP-адрес и сохранил его в переменной. Я изучал переопределение представлений администратора django, но все, что я обнаружил, казалось, коррелировало с созданием наборов запросов и возвратом http-запроса каким-то образом, а это не то, чего я хочу (я не верю.)

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете переопределить метод save_model в классе администратора модели.

admin.py

class YouModelAdmin(admin.ModelAdmin):
  ##
  def save_model(self, request, obj, form, change):
        obj.ip = request.get("get  ip address")
        obj.save()
...