Я использую django 1.6 с python 2.7.6
В admin.py у меня есть некоторые функции, такие как def getJson (id), который принимает идентификатор и делает много вещей с моделью из db и возвращает JSON как строку.
Как передать это переменной change_form.html? (Я уже переопределил этот файл)
Чтобы сделать материал со списком, это: admin.site.register(Object, ObjectAdmin)
а затем я делаю вещи в классе ObjectAdmin
Но если я хочу получить доступ к admin/appName/Object/123, как передать этот 123 id классу для использования моей определенной функции getJson (id)?
должен ли он быть чем-то вроде admin.site.register_single (Obj, ObjAdmin), а затем у меня есть какой-то доступ к obj_key в классе ObjAdmin?
Я не хочу делать все, что делает getJson в шаблоне, потому что функция длинная, и это тоже не имеет смысла.
Благодарю.
В документации достаточно ясно:
class MyModelAdmin(admin.ModelAdmin):
# A template for a very customized change view:
change_form_template = 'admin/myapp/extras/openstreetmap_change_form.html'
def get_osm_info(self):
# ...
pass
def change_view(self, request, object_id, form_url='', extra_context=None):
extra_context = extra_context or {}
extra_context['osm_data'] = self.get_osm_info()
return super(MyModelAdmin, self).change_view(request, object_id,
form_url, extra_context=extra_context)