如何更改Django Admin自定义列表字段标签?
如何更改 my_stock
的显示名称?
在 models.py 文件中:
class Book(models.Model):
name = models.CharField(u"Нэр", max_length=200)
stock = models.IntegerField()
@property
def my_stock(self):
return self.stock
在 admin.py 文件中:
class BookAdmin(admin.ModelAdmin):
list_display = ('name', 'my_stock')
search_fields = ('name', )
3 个回答
3
你可以用自定义列 "my_stock",通过调用my_stock()
来创建它,然后可以使用@admin.display来给它改个名字,下面是示例:
# "models.py"
class Book(models.Model):
name = models.CharField(u"Нэр", max_length=200)
stock = models.IntegerField()
# @property
# def in_stock(self):
# return self.stocks.count()
# "admin.py"
class BookAdmin(admin.ModelAdmin):
list_display = ('name', 'my_stock')
search_fields = ('name', )
# ↓ Displayed
@admin.display(description='Your label here')
def my_stock(self, obj):
return obj.stock
5
把你的模型和verbose_name参数改成field。我把“author”的标签改成了“Author(s)”。
在models.py文件里
class books(models.Model):
title = models.CharField(max_length = 250)
author= models.CharField(max_length = 250, verbose_name='Author(s)')
或者简单点
author = models.CharField('Author(s)',max_length = 250)
71
我想你应该使用短描述这个属性。Django-admin
def my_stock(self):
return self.stock
my_stock.short_description = 'Your label here'