Django admin 后台 数据展示

Django admin 后台 数据展示,第1张

概述如果一个模型里包含了ManyToManyField,在admin后台可能会显示成object,这时 class User_Tag(models.Model): user_tag = models.CharField(max_length=30,blank=True, verbose_name="标签") class Meta: db_table = "user_ta

如果一个模型里包含了ManyToManyFIEld,在admin后台可能会显示成object,这时

class User_Tag(models.Model):    user_tag = models.CharFIEld(max_length=30,blank=True,verbose_name="标签")    class Meta:        db_table = "user_tag"    def __unicode__(self):        return self.user_tag#新加上这个就行了    def __str__(self):        return self.user_tag

常见设置

?'''设置列表可显示的字段''' ? ?List_display = ('Title','author',?'status','mod_date',) ? ?'''设置过滤选项''' ? ?List_filter = ('status','pub_date',) ? ?'''每页显示条目数''' ? ?List_per_page = 5 ? ?'''设置可编辑字段''' ? ?List_editable = ('status',) ? ?'''按日期月份筛选''' ? ?date_hIErarchy = 'pub_date' ? ?'''按发布日期排序''' ? ?ordering = ('-mod_date',)#由于Django admin默认的多对多关系(ManyToMany)选择器是复选框,非常的不好用。一个更好的方法是使用filter_horizontal或filter_vertical选项 filter_horizontal

指定显示多对多中字段的值

# admin.py,其中Author表中的authors字段和Book表是多对多关系from django.contrib import adminfrom .models import Author,Book,Publisher@admin.register(Book)class Bookadmin(admin.Modeladmin):    # 显示多对多字段    # 定义一个方法,遍历book的authors,然后用列表返回    def show_all_author(self,obj):        return [a.name for a in obj.authors.all()]    List_display = ['Title','publisher','show_all_author']  # 用刚刚定义的方法的返回值替换authors的值或者    def show_all_Tags(self,obj):        tag_names = map(lambda x: x.user_tag,obj.Tags.all())            return ','.join(tag_names)#设置表头      show_all_Tags.short_description = '标签'
总结

以上是内存溢出为你收集整理的Django admin 后台 数据展示全部内容,希望文章能够帮你解决Django admin 后台 数据展示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1191903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存