Django 注意知识点(一)

本篇概述

  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%}    

猜你喜欢

转载自www.cnblogs.com/xmdykf/p/11403000.html