Найти - Пользователи
Полная версия: Django.Admin доступ к сессии
Начало » Django » Django.Admin доступ к сессии
1
amator
Здравствуйте. Прошу не пинать, только начал знакомиться с django и многих вещах еще туплю. Подскажите, если кто знает, с проблемой.
Я в своем проекте переопределяю модель Group админки в файле models.py:
class MyGroup(Group):

class Meta:
# db_table = ‘auth_group’
proxy = True

def save(self, force_insert=False, force_update=False, using=None):
# do something
super(Group, self).save()

def delete(self, *args, **kwargs):
# do something
super(Group, self).delete(*args, **kwargs)

И в местах #do something мне надо получить доступ к данным в сессии. Как это сделать?
ilnur
мне кажется, что вы что-то не так делаете.
имхо, в моделях не должно быть логики, связанная с сессией.
amator
Возможно. Но как сделать по другому эту задачу, пока не придумал.
GreyZmeem
Вы не можете получить доступ к request (и session) из модели.
Но можно переопределить админку для Group, User или вашей модели и передать нужный параметр в метод.

admin.py
from django.contrib import admin
from MyApp.models import MyModel
 
 
class MyModelAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.do_something_on_save(request)
        super(MyModelAdmin, self).save_model(request, obj, form, change)
 
    def delete_model(self, request, obj):
        obj.do_something_on_delete(request)
        super(MyModelAdmin, self).delete_model(request, obj)
admin.site.register(MyModel, MyModelAdmin)

models.py
class MyModel(models.Model):
    ...
 
    def do_something_on_save(self, request):
        pass
 
    def do_something_on_delete(self, request):
        pass
amator
Спасибо большое!!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB