Уведомления

Группа в Telegram: @pythonsu

#1 Март 7, 2013 08:24:07

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Django admin - вывод inlines по условию

Сабж в заголовке. Как сделать, чтобы inlines отображались только при редактировании уже существующего объекта?

Офлайн

#2 Март 7, 2013 13:37:49

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Django admin - вывод inlines по условию

Проблема решена. Не знаю на сколько правильно и корректно, но всё работает))

def get_inline_instances(self, request, obj=None):
        inline_instances = []
        if request.path.split('/')[-2]=='add':
            inlines = []
        else:
            inlines = self.inlines
        for inline_class in inlines:
            inline = inline_class(self.model, self.admin_site)
            if request:
                if not (inline.has_add_permission(request) or
                        inline.has_change_permission(request) or
                        inline.has_delete_permission(request)):
                    continue
                if not inline.has_add_permission(request):
                    inline.max_num = 0
            inline_instances.append(inline)
        return inline_instances
    def get_formsets(self, request, obj=None):
        for inline in self.get_inline_instances(request, obj):
            yield inline.get_formset(request, obj)

Офлайн

#3 Март 8, 2013 18:40:24

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Django admin - вывод inlines по условию

hulygun, правильней сделать:

    def get_formsets(self, request, obj=None):
        for inline in self.inline_instances:
            if isinstance(inline, ModelInline) and obj is None:
                continue
            yield inline.get_formset(request, obj)



Офлайн

#4 Март 11, 2013 11:39:32

hulygun
Зарегистрирован: 2012-08-25
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Django admin - вывод inlines по условию

alafin, спасибо, уважаемый

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version