Django adminの設定とカスタマイズ
9024 ワード
modelsはmodelsにあります.pyで定義します.各modelはclassです.
カスタムobjectの表示
はい.pyで定義PerformanceDataAdmin継承admin.ModelAdmin、さらにModelを設定します.
フィールドの色をmodelsに設定.pyで新しいフィールドを定義するには、次のようにします.
はい.pyで変更する必要があります
ヘッダーの表示テキストの変更
フィールドはmodelsにあることに注意してください.pyでcoredのようなものを定義します.nameのメソッドを設定し、short_を設定します.次にadminでpyのlist_この新しいメソッド定義をdisplayで使用します.例:
テーブルにactionsを追加する
モデルにcreate関数を追加すると、この関数を呼び出して新しいエントリを追加できます.
from django.db import models
class PerformanceData(models.Model):
name = models.CharField('name', max_length=200, unique=True)
date = models.DateTimeField('date')
カスタムobjectの表示
def __unicode__(self): # python3 __str__
return u'%s %s' % (self.name, self.date)
はい.pyで定義PerformanceDataAdmin継承admin.ModelAdmin、さらにModelを設定します.
class PerformanceDataAdmin(admin.ModelAdmin):
list_display=('name', 'date') #
list_per_page = 50 # 50
ordering = ('-name',) # name , '-'
list_filter =('name', 'date') #
search_fields =('name', 'date') #
actions = [add_one_copy,] # action, add_one_copy
admin.site.site_header = 'Test Management' #
admin.site.site_title = 'Test Management' #
admin.site.register(PerformanceData, PerformanceDataAdmin) #
フィールドの色をmodelsに設定.pyで新しいフィールドを定義するには、次のようにします.
from django.db import models
from django.utils.html import format_html
class PerformanceData(models.Model):
name = models.CharField('name', max_length=200, unique=True)
date = models.DateTimeField('date')
def colored_name(self):
if self.name == '1':
color_code = 'green'
else:
color_code = 'red'
return format_html(
'{}',
color_code,
self.name,
)
はい.pyで変更する必要があります
list_display=('colored_name', 'date') #
ヘッダーの表示テキストの変更
colored_name.short_description = 'MY_NAME'
フィールドはmodelsにあることに注意してください.pyでcoredのようなものを定義します.nameのメソッドを設定し、short_を設定します.次にadminでpyのlist_この新しいメソッド定義をdisplayで使用します.例:
class PerformanceData(models.Model):
name = models.CharField('name', max_length=200, unique=True)
date = models.DateTimeField('date')
def short_date(self):
return self.date
short_date.short_description = 'MY_DATE'
list_display=('colored_name', 'short_date') #
テーブルにactionsを追加する
def add_one_copy(modelAdmin, request, queryset):
add_one_copy.short_description = 'Select and add one copy'
for i in queryset:
print(i.date)
class PerformanceDataAdmin(admin.ModelAdmin):
actions = [add_one_copy,] # action, add_one_copy
モデルにcreate関数を追加すると、この関数を呼び出して新しいエントリを追加できます.
from django.db import models
from datetime import *
class PerformanceData(models.Model):
name = models.CharField('name', max_length=200, unique=True)
date = models.DateTimeField('date')
@classmethod
def create(cls, _name, _date):
obj = cls(name=_name, date=_date)
return obj
obj = PerformanceData.create('hello', datetime(1980,10,11))
obj.save()