2012-03-22 3 views
1

나는 원래 포스트 Populating values in django-admin based on a foreign key selection을 보았다하지만 템플릿 확장 예를 이해하지 않았다 : 나는 비슷한 일을하려고채우기 값은 ... 다시



    {% 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 %} 

을하지만, get_template_info가 어디에서 유래했는지 이해하지 못한다.

저는 TemplateAdmin (admin.ModelAdmin)에 속하는 메소드 여야한다고 생각하지만 그것에 대해서는 확신하지 못합니다. 장고 설명서의 유일한 단서는 예를



    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) 

을두고 그러나 더 난해한 경향이 https://docs.djangoproject.com/en/dev/ref/contrib/admin/이었다! 그래서 나에게이 일에 대한 몇 가지 지침을 제공하시기 바랍니다 장고에 새로운 오전.

답변

1

그 대답의 저자는 매우 포괄적 아니었지만,이 마지막 줄에서 힌트 :

단순히 전달 된 ID를 취하는보기 안타, 을 그것을 조회하고 그것을 반환 호출. 매력처럼 작동합니다.

get_template_info은 장고에 내장되어 있지 않습니다. AJAX 요청을 처리하기 위해 만든 뷰의 이름입니다. 자신 만의 뷰를 만들어 필요한 정보를 반환해야합니다.

+0

감사합니다. 그렇게 할 것입니다. uhmm 그는 json 데이터를 반환하고 있습니다. 그래서 뷰는 그것을 빌드해야합니다. 그래서 의미가 있습니다. 감사합니다 크리스 – martinh

+0

정말 잘하고 있습니다. :디 – martinh

관련 문제