Форум сайта python.su
Сабж в заголовке. Как сделать, чтобы 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)
Офлайн
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)
Офлайн
alafin, спасибо, уважаемый
Офлайн