Я видел исходное сообщение Заполнение значений в django-admin на основе выбора внешнего ключа , но не понял пример расширения шаблона:
{% extends "admin/change_form.html" %}
{% block extrahead %}
$(document).ready(function() {
$('#id_template').change(function() {
$.ajax({
type: 'POST',
url: "{% url get_template_info %}",
data: {'template_id': $('#id_template').val()},
success: function(data, _status) {
$('#id_throttle').val(data.throttle);
$('#id_rate_limit').val(data.rate_limit);
$('#id_product').val(data.product);
$('#id_tier_group').val(data.tier_group);
},
dataType: "json"
});
});
});
{% endblock %}
Я пытаюсь сделать что-то подобное, но не понимаю, откуда берется URL get_template_info.
Я предполагаю, что должен быть метод, который принадлежит TemplateAdmin (admin.ModelAdmin), но я не уверен в этом. единственная подсказка в документации django была https://docs.djangoproject.com/en/dev/ref/contrib/admin/, в которой приведен пример
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, 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,
extra_context=extra_context)
Но, как правило, более загадочно! Я новичок в Django, поэтому, пожалуйста, дайте мне несколько советов по этому поводу.