2014-09-03 114 views
0

在「區域Tecnici」formset之後,只有內聯實例,但其中一些爲空。我怎樣才能避免顯示空頭?我只是想內聯的ModelAdmin內聯來說,如果它有一些實例只有Django管理內聯實例存在

(如「SL Formazioni」和「HACCP」有一些實例,但「SL Valutazioni」和「Prestazioni & SERVIZI」沒有,所以我不「噸要內聯 「SL Valutazioni」 和 「Prestazioni & SERVIZI」)

Click here to see the screenshot

回答

0

您應該重寫ModelAdmin.get_formsets_with_inlines

class MyModelAdmin(admin.ModelAdmin): 
    inlines = [MyInline, SomeOtherInline] 

    def get_formsets_with_inlines(self, request, obj=None): 
     for inline in self.get_inline_instances(request, obj): 
      # FILTER THE INLINE FORMSET TO YIELD HERE 
      # For example, given obj.related_instances value 
      if obj is not None and obj.related_instances.count() > 0: 
       yield inline.get_formset(request, obj), inline 

See django doc here.

+0

我如何檢查是否一個內嵌的ModelAdmin有一些情況?對不起,我很喜歡:( 編輯:我使用的是Django 1.5.5,所以它不支持這種方法 – exrezzo 2014-09-03 09:58:25

+0

對於django 1.5,你可以重寫get_formsets:https://docs.djangoproject.com/en /1.5/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_formsets – pchiquet 2014-09-03 11:45:55

+0

要檢查你的inlineAdmin是否爲空,你可以試試這個(未測試):'if inline.get_queryset()。count()> 0 ' – pchiquet 2014-09-03 11:48:43