【问题标题】:How to pass custom data to a django template?如何将自定义数据传递给 django 模板?
【发布时间】:2019-07-29 10:45:35
【问题描述】:

我喜欢将一些自定义数据传递给 django admin 中的模板。如何访问下面示例中的myData

class MyAdmin(admin.ModelAdmin):
    def get_object(self, request, object_id, form_field=None):
        obj = super().get_object(request, object_id, form_field)
        self.myData = MyModel.objects.filer(id=obj.myData_ID) 
        return obj

在模板中:

{% for p in myData %}
    <p>{{p}}</p>
{% endfor %}

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    参考 StackOverflow:customizing django admin ChangeForm template / adding custom content

    你可以试试这个:

     class MyObjectAdmin(admin.ModelAdmin):
    
         # A template for a very customized change view:
         change_form_template = 'admin/my_change_form.html'
    
         def get_dynamic_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_dynamic_info()
            return super(MyObjectAdmin, self).change_view(
                request, object_id, form_url, extra_context=extra_context,
            )
    
    

    【讨论】:

      【解决方案2】:

      我认为你可以这样做。我没试过

      class MyAdmin(admin.ModelAdmin):
          def get_object(self, request, object_id, form_field=None):
              obj = super().get_object(request, object_id, form_field)
              return obj
      
          def render_change_form(self, request, context, *args, **kwargs):
              context['myData'] = MyModel.objects.filer(id=obj.myData_ID) 
              return super(MyAdmin, self).render_change_form(request, context, args, kwargs)
      

      【讨论】:

      • 使用context["myData"] 传递数据有效。但是我如何访问id=obj.myData_ID 行中的模型?我试过self.model,但后来我得到了django.db.models.query_utils.DeferredAttribute
      猜你喜欢
      • 2012-08-17
      • 1970-01-01
      • 2014-07-14
      • 2011-11-10
      • 2012-10-09
      • 2022-07-26
      • 2012-02-26
      • 1970-01-01
      • 2015-12-02
      相关资源
      最近更新 更多