如果一个模型里包含了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 后台 数据展示所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)