6
TextField
の最初の10文字をlist_display
に表示しようとしています。
管理者インターフェースで可能ですか?Django - Admin:list_display TextField
TextField
の最初の10文字をlist_display
に表示しようとしています。
管理者インターフェースで可能ですか?Django - Admin:list_display TextField
フィールドの最初の10文字を返すコール可能オブジェクトを定義し、それをlist_display
に追加できます。
詳細については、list_display
のDjangoドキュメントを参照してください。
myapp/admin.py
from django.contrib import admin
from django.utils.text import Truncator
from django.db import models
from .models import Product
def truncated_name(obj):
name = "%s" % obj.name
return Truncator(name).chars(70)
class ProductAdmin(admin.ModelAdmin):
list_display = ['id', truncated_name, 'category', 'timestamp',]
list_display_links = [truncated_name]
list_filter = ['category']
class Meta:
model = Product
またそうのようなフィールドを上書きすることができます。
formfield_overrides = {
models.CharField: {'widget': TextInput(attrs={'size': '20'})},
models.TextField: {'widget': Textarea(attrs={'rows': 1, 'cols': 40, 'style': 'height: 1.5em;'})},
}
非常に良いアイデア、感謝を –
私は、リストビューの長さを制限したいが、私は管理者のことができるようにしたい場合はどうアイテム詳細ビューのフィールドを編集しますか? –
@CsabaToth 'list_display'に項目を追加しても、項目の詳細ビューには全く影響しません。管理者は以前と同じようにフィールドを編集できるはずです。 – Alasdair