本篇概述
Django Admin后台显示 多对多字段(如何)
Django 模板 显示 多对多字段(如何)
models代码背景
1 class Tag(models.Model): 2 name = models.CharField(max_length=20, verbose_name="名称") 3 4 class work(models.Model): 5 Tag = models.ManyToManyField(Tag, verbose_name="标签")
一,Django Admin后台显示 多对多字段
于admin.py文件中
1 @admin.register(work) 2 class workAdmin(admin.ModelAdmin): 3 ‘‘‘展示tags‘‘‘ 4 def show_tags(self, obj): 5 return [tag.name for tag in obj.Tag.all()] 6 # 这里运用了Python的堆导式 7 show_tags.short_description = "标签" # 设置表头 8 list_display = ["show_tags"]
二,Django 模板 显示 多对多字段
先与 视图 views.py文件中
1 class IndexView(View): 2 def get(self, request): 3 works = work.objects.all()[:2] 4 5 context = { 6 ‘works‘: works, 7 } 8 return render(request, ‘index.html‘, context)
然后,(urls.py中的配置就不多说了,直接进如何在模板中取得)
1 {% for work in works %} 2 {% for tag in work.Tag.all %} 3 {# 下面即 该作品对应的标签 #} 4 {{tag.name}} 5 {% endfor %} 6 {% endfor%}
原文:https://www.cnblogs.com/xmdykf/p/11403000.html