Заполнение значений в django-admin на основе выбора внешнего ключа ... Опять - PullRequest
1 голос
/ 23 марта 2012

Я видел исходное сообщение Заполнение значений в 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, поэтому, пожалуйста, дайте мне несколько советов по этому поводу.

1 Ответ

1 голос
/ 23 марта 2012

Автор этого ответа не был исчерпывающим, но в последней строке есть подсказка:

, которая попадает в представление, которое просто принимает переданный идентификатор, запрашивает и возвращаетна звонок.Работает как шарм.

get_template_info не является встроенной частью Django.Это имя представления, которое он создал для обработки запроса AJAX.Вам нужно будет создать свой собственный вид для возврата необходимой информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...