3

私はこれをDjango管理者のリスト表示として持っています

list_display = ('product', 'price', 'purchase_date', 'confirmed', 'get_po_number', 'notes')

models.py で:

class PurchaseOrder(models.Model):
     notes = models.TextField( null=True, blank= True)

これは次のようになります。

[1]: http://i.imgur.com/ZyKmpoF.png '

ご覧のとおり、「メモ」は多くのスペースを占める可能性があるため、ボタンをクリックしてそのフィールドを表示/非表示にする方法はありますか?

4

1 に答える 1

0

ボタンを押す代わりに、フィールドのサイズを変更して小さくすることができます。

class PurchaseAdmin(admin.ModelAdmin):
formfield_overrides = {
    models.CharField: {'widget': TextInput(attrs={'size':'20'})},
    models.TextField: {'widget': Textarea(attrs={'rows':4, 'cols':40})},
}

admin.site.register(PurchaseOrder, PurchaseAdmin)

本当に別のボタンが必要な場合は、カスタム Inline クラスを使用してフィールドを定義できます。

class CustomInline(admin.TabularInline):
    readonly_fields = [...'link',...]

    # important part which define what "link" looks like
    def link(self, instance):
       url = # your link to display the note
       return mark_safe(u'<a href="{u}">View Note</a>".format(u=url))

カスタム管理クラスでは、代わりにこの Inline クラスを使用します。

class PurchaseAdmin(admin.ModelAdmin):
    inlines = [CustomInline]
于 2013-07-31T19:45:01.210 に答える