Нашел еще один вариант:
class CargoAdmin(admin.ModelAdmin):
...
save_as = True
def change_view(self, request, object_id, form_url='', extra_context=None):
obj = Cargo.objects.get(pk=object_id)
extra_context = extra_context or {}
if obj.creator.id == request.user.id or request.user.is_superuser:
pass
else:
extra_context['show_delete'] = False
extra_context['show_save'] = False
# extra_context['show_save_as_new'] = True
extra_context['show_save_and_continue'] = False
extra_context['show_save_and_add_another'] = False
return super(CargoAdmin, self).change_view(request, object_id, form_url, extra_context=extra_context)
Просто убираем кнопки сохранения и удаления.
И опять возник вопрос: Как получить доступ к самому редактируемому объекту? Так, как сделал я, это единственный способ. или есть лучше способ?
Updated 22 Dec. 2015, 21:33 by SES.