目录
Model 部分
class Language(models.Model):
"""
语言
"""
id = models.AutoField(primary_key=True, blank=False)
language_name = models.CharField('语言名称', default='', max_length=50)
inuse = models.BooleanField(default=True, verbose_name='是否正在使用')
users = models.BigIntegerField('使用人口数量', default=0)
use_time = models.IntegerField('使用时长(年)', default=0)
origin = models.CharField('起源地', max_length=200, default='')
# ancient_civilization = models.ForeignKey(AncientCivilization)
explain = models.TextField('语言介绍', default='', max_length=2000)
user = models.ForeignKey(UserInfo, on_delete=models.SET_NULL, related_name='language_operator', verbose_name='操作人',
to_field='id',
null=True)
create_time = models.DateTimeField('生成时间', default=timezone.now)
modify_time = models.DateTimeField('修改时间', auto_now=True) # 使用Model.save()来更新才会更新注意
def __str__(self, print_all=False): # 定义打印对象时打印的字符串
if print_all:
# return ' '.join(('%s' % item for item in self.__dict__.values()))
return str(self.__dict__)
else:
return self.language_name
Admin部分:
1:10这个10代表着Language这个model属性的数量,以tuple的形式返回属性的元组,这样就不用手动将属性一个一个copy过来了,当然了这样也将不方便Main 和 Advance,以及控制显示属性的数量。
class LanguageAdmin(admin.ModelAdmin):
obj = Language()
list_display = tuple(obj.__dir__()[1:10])
readonly_fields = ('create_time', 'modify_time',)
list_display_links = ('language_name',)
search_fields = ('id', 'language_name', 'user')
admin.site.register(Language, LanguageAdmin)