django xadmin多個model的數據渲染在統一個template中


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM