您的位置:首页 > 编程语言 > Go语言

django xadmin多个model的数据渲染在统一个template中

2016-04-14 12:08 501 查看
adminx.py

demo

class ModelAdmin(object):
#....

def get_context(self):
context = super(SimCardServicesAdmin, self).get_context()
f = context.get('form',None)
if f:
card_id = f['card'].value()
card_info_obj = SimCardInfo.objects.get(card=card_id)
card_info_form = SimCardInfoForm(instance=card_info_obj)
       helper = self.get_form_helper()
layout = Layout(Container(Col('full',
Fieldset(
"", *card_info_form.fields.keys(),
css_class="unsort no_title"), horizontal=True, span=12)
))
setattr(helper, 'layout', layout)

setattr(card_info_form, 'helper',helper)
#setattr(card_info_form, 'helper', self.get_form_helper())
pdb.set_trace()
context.update({'form2': card_info_form})
return context


抽象

def get_context(self):
context = super(ModelAdmin, self).get_context()
original_form = context['form']
related_form = xxx#related model form object
context.update({'related_form':related_form})
return context


template

{% crispy form %}
{% crispy related_form %}


  

注意:

1. related_form用默认的helper来布局,否则样式不统一。(在get_context中实现)

  help的layout需要自定义,否则栏位默认不显示。

2. xadmin尽量通过源码来分析问题的解决方案

转载请注明来源:http://www.cnblogs.com/Tommy-Yu/p/5390555.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: