首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用M2M中介模型的Django : list_display和视图

使用M2M中介模型的Django:list_display和视图

Django是一个高级Python Web框架,提供了强大的功能和工具来简化Web应用程序的开发过程。M2M中介模型指的是多对多关系的中介模型,它允许在多个模型之间建立复杂的关联关系。

在Django中,list_display是ModelAdmin类的一个属性,用于定义在admin页面中显示的字段。它允许开发者指定哪些字段应该在列表视图中显示,并提供了一个简单的方式来自定义这些字段的显示格式。

视图(Views)是Django中处理请求和生成响应的部分。它们是Web应用程序的核心,负责接收请求、执行逻辑处理,并生成适当的响应返回给用户。

对于使用M2M中介模型的Django应用,可以通过以下步骤实现list_display和视图的设置:

  1. 定义模型(Model):在Django中的models.py文件中定义多个模型,并使用ManyToManyField字段建立模型之间的多对多关系。
  2. 创建中介模型(Intermediate Model):在models.py文件中创建一个中介模型,用于管理多对多关系。
  3. 注册模型到admin页面:在admin.py文件中使用admin.site.register()方法注册模型,以在admin页面中进行管理。
  4. 设置list_display属性:在admin.py文件的ModelAdmin类中设置list_display属性,指定要在admin页面中显示的字段。
  5. 创建视图(Views):在views.py文件中创建适当的视图函数,用于处理相关的业务逻辑和数据操作。

下面是使用M2M中介模型的Django应用示例:

代码语言:txt
复制
# models.py
from django.db import models

class Tag(models.Model):
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    tags = models.ManyToManyField(Tag, through='ArticleTag')

    def __str__(self):
        return self.title

class ArticleTag(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    tag = models.ForeignKey(Tag, on_delete=models.CASCADE)

# admin.py
from django.contrib import admin
from .models import Article, Tag, ArticleTag

class ArticleTagInline(admin.TabularInline):
    model = ArticleTag

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'get_tags')

    def get_tags(self, obj):
        return ", ".join([tag.name for tag in obj.tags.all()])

    get_tags.short_description = 'Tags'

    inlines = [
        ArticleTagInline,
    ]

admin.site.register(Article, ArticleAdmin)
admin.site.register(Tag)

# views.py
from django.shortcuts import render
from .models import Article

def article_list(request):
    articles = Article.objects.all()
    return render(request, 'articles/article_list.html', {'articles': articles})

在上述示例中,我们定义了两个模型Article和Tag,并通过ArticleTag中介模型建立了多对多关系。在admin.py中,我们注册了Article和Tag模型,并设置了ArticleAdmin类的list_display属性来显示文章的标题和标签。在views.py中,我们创建了一个视图函数article_list来展示所有文章。

这个应用的应用场景可能是一个博客系统,其中文章可以拥有多个标签,通过M2M中介模型来管理标签与文章之间的关系。在admin页面中,我们可以方便地查看和管理文章的标题和标签。

腾讯云相关产品和产品介绍链接地址:

  1. 云服务器(CVM):https://cloud.tencent.com/product/cvm
  2. 云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
  3. 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  4. 云存储(COS):https://cloud.tencent.com/product/cos
  5. 腾讯云区块链服务(TCS BaaS):https://cloud.tencent.com/product/tcs-baas
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Django内置Admin

    Django内置Admin是对于model中对应数据表进行增删改查提供组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttypes...= ('user', 'pwd',) ModelAdmin中提供了大量可定制功能,如 1. list_display,列表时,定制显示列。...New in Django 1.10. 12. save_on_top = False,详细页面,在页面上方是否也显示保存删除等按钮 13. inlines,详细页面,如果有其他表当前表做FK,那么详细页面可以进行动态增加删除...delete_selected_confirmation_template = None object_history_template = None 16. raw_id_fields,详细页面,针对FKM2M...详细页面时,M2M显示时,数据移动选择(方向:上下左右) 1 2 3 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin

    1.4K90

    如何在 Django 中同时使用普通视图 API 视图

    在本教程中,我们将学习如何在 Django 项目中有效地管理使用普通视图 API 视图。我们将从基础概念开始,逐步深入,涵盖必要配置、代码示例以及最佳实践。1....准备工作在开始之前,请确保你已经具备以下条件:Python Django 环境已经安装配置。对 Django 基本理解,包括项目、应用、模型视图路由概念。...对于 API 开发,了解 RESTful 架构设计基本原则是有帮助。3. 设置项目应用首先,创建一个 Django 项目一个应用(或使用现有的应用)。...配置 API 视图API 视图用于处理 RESTful API 请求和响应。我们将使用 Django REST Framework 来简化 API 视图创建和管理。...总结通过本教程,你学习了如何在 Django 项目中同时使用普通视图 API 视图。我们涵盖了从设置项目、编写视图、配置 URL 路由到测试应用整个流程。

    15700

    从0开始做系统

    前面已经写了如何做接口,那是方便调用。现在写个如何做后台系统,是方便操作Django自带后台管理是Django明显特色之一,可以让我们快速便捷管理数据。...先安装django,创建项目app pip install django django-admin startproject xxx cd xxx python manage.py startapp...模板 raw_id_fields,详细页面,针对FKM2M字段变成以Input框形式 fields,详细页面时,显示字段字段 exclude,详细页面时,排除字段 readonly_fields,...详细页面时,只读字段 fieldsets,详细页面时,使用fieldsets标签对数据进行分割显示 详细页面时,M2M显示时,数据移动选择(方向:上下左右) ordering,列表时,数据排序规则 radio_fields...,详细页面时,使用radio显示选项(FK默认使用select) form = ModelForm,用于定制用户请求时候表单验证 可以参考: django admin高级扩展 简单定制了一下: from

    1.4K30

    Django admin管理工具使用、定制及源码解析

    admin组件使用 Django 提供了基于 web 管理工具。 Django 自动管理工具是 django.contrib 一部分。...BlogAdmin(admin.ModelAdmin): #listdisplay设置要显示在列表中字段(id字段是Django模型默认主键) list_display...4.设置只读字段 在使用admin时候,ModelAdmin默认对于model操作只有增加,修改删除,但是总是有些字段是不希望用户来编辑。...我们如何修改这个app名称达到定制要求呢,其实Django已经在文档里进行了说明。 从Django1.7以后不再使用app_label,修改app相关需要使用AppConfig。.../ 默认django会自动根据我们定义模型生成form给admin使用使用到这个form地方分别是changeadd时候。

    4K40

    Django Admin后台管理:高效开发与实践

    通过这一章学习,你将对Django Admin有基本了解,并能够开始使用它来管理你数据模型。后续章节将深入探讨如何定制扩展Admin以满足项目需求。...2.2 使用Admin类进行高级配置 Django Admin使用Admin类来配置模型管理界面。...2.4 列表页面的优化 自定义列表视图使用list_display来控制列表页面显示字段,list_filter来添加过滤器,ordering来设置默认排序。...用户模型Django提供了一个默认用户模型,包含用户名、密码电子邮件等字段。 3.2 用户、组权限管理 用户管理:在Django Admin中,可以创建、编辑删除用户。...3.5 用户界面定制 自定义登录界面:可以创建自定义登录视图模板来替换默认登录界面。 自定义用户注册:可以编写自定义用户注册视图表单。

    11410

    Django流程_菜鸟裹裹收费标准

    search_fields list_per_page fields fieldsets 关联对象 布尔值显示问题 执行动作位置 c、使用装饰器完成注册 11、视图基本使用 a、概述: b、定义视图...模板 定义视图 配置url 一、Django 安装 1、Django 版本对应 Python 版本: 2、Django下载地址: https://www.djangoproject.com/download...目录 b、执行:python manage.py startapp myAPP c、myApp目录说明 admin.py 站点配置 models.py 模型 views.py 视图 4、激活应用 在setting.py...actions_on_top = False actions_on_bottom = True # admin.site.register(Students,StudentsAdmin) 11、视图基本使用...import views urlpatterns = [ url(r'^$',views.index) ] 12、模板基本使用 a、概述: 模板是HTML页面,可以根据视图中传递过来数据进行填充 b

    1.3K30

    Django—入门

    后来被推荐为Oracle旗下Sun公司Java EE平台设计模式,并且受到越来越多使用ColdFusionPHP开发者欢迎。...django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型对象完成数据表增删改查操作。...使用django进行数据库开发步骤如下: 1.在models.py中定义模型类 2.迁移 3.通过类对象完成数据增删改查操作 下面我们以保存图书信息为例来给大家介绍Django中进行数据库开发整个流程...上去 4.管理站点 使用Django管理模块,需要按照如下步骤操作: 1.管理界面本地化 2.创建管理员 3.注册模型类 4.自定义管理页面 1.管理界面本地化 本地化是将显示语言、时间等使用本地习惯...一条URLconf包括url规则、视图两部分: url规则使用正则表达式定义。 视图就是在views.py中定义视图函数。

    1.9K10

    django入门:Admin管理系统及表单(干货)

    视图及模版》 django 强大之处还有自带后台管理系统,真心给力!!...这一部分将介绍 django 自带后台管理系统,以及如何通过表单提交数据 django admin 后台管理系统 在后台管理系统注册创建模型 from django.contrib import admin...admin 主界面 当然,django 自带 admin 管理系统不止那么点功能,接着我们通过定义一些参数,来定制 admin 界面 自定义 admin # 在使用后台管理时候,可能需要自己定制...admin 管理界面 为了可以用户进行交流,我们需要获取用户一些评论之类,所以我们需要通过表单让用户提交信息,接下来我们将了解下 django 表单 django 表单 存在相应模型(POST...或者 forms.Form 类,如果有相应模型,则使用 ModelForm 更方便 class PostForm(forms.ModelForm): class Meta:

    2.9K20

    Django教程第1章 | 快速入门 | 基础知识

    django特点 ORM(对象关系映射): Django 提供了一个强大 ORM,允许开发者通过 Python 代码来定义操作数据库模型,而无需直接使用 SQL。...MVC 架构: Django 遵循 MVC(模型-视图-控制器)软件设计模式,但它使用了稍微不同术语。...在 Django 中,模型(Model)表示数据结构,视图(View)负责呈现用户界面,而控制器(Controller)职责被称为视图(View)。...社区支持: Django 拥有庞大社区支持,提供了大量文档、教程第三方包,使得学习使用 Django 变得更加容易。...MVC 与 MTV模型 MVC 模型 MVC 模式(Model–view–controller)是软件工程中一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)控制器(

    24710

    Python:Django搭建博客

    简介 学完 Django2.x 可以搭建一个个人博客练练手 教程 创建项目 通过 pycharm 创建博客项目与虚拟环境 修改相关设置 允许任何域名 在开发测试时候可以将这里填为 *,后期部署上线后修改为指定域名即可...'default': { # 选择使用数据库类型,这里为mysql 'ENGINE': 'django.db.backends.mysql', # 数据库名称...OK 用 django-admin 管理 数据库迁移完成会在 post 应用下生成一个迁移文件,接下来在 django-admin 中注册模型,便于我们用 django-admin 管理 /post...可以写一个简单视图,然后开着 Django 一边抽取一遍调试 接下来实现首页试图 首先在 urls.py 中配置路由 DjangoBlog/u rls.py ... from blog import...path('', views.index, name='index') ] 这里 path 里第一个参数为访问 url,匹配采用正则表达式,第二个参数为视图函数,第三个为取名字 接下来在 blog

    55900

    Django管理应用程序高级配置在BookInstance模型运用【Django

    Django管理应用程序 Django管理应用程序可以使用模型自动构建可用于创建、查看、更新和删除记录站点区域。这可以在开发过程中节省大量时间,使测试模型查看是否有正确数据变得容易。...Django项目只建议用于内部数据管理(也就是说,仅适用于组织管理员或内部人员),因为以模型为中心方法不一定是所有用户最佳界面,并且暴露了许多关于模型不必要细节。...python3 manage.py runserver 高级配置 Django使用注册模型信息创建基本管理站点: 每个模型都有一个单独记录列表,由__ str__()方法创建并链接到详细视图/表单以进行编辑字符串...默认情况下,视图顶部有一个操作菜单,可用于批量删除记录。 用于编辑添加记录模型详细记录表单包含模型所有字段,这些字段按其声明顺序垂直排列。 可以进一步自定义界面,使其更易于使用。...向列表视图操作菜单添加其他选项,并选择此菜单在表单上显示位置。 详细信息视图 选择要显示(或排除)字段、它们顺序、分组、可编辑、要使用小部件、方向等。

    1.7K20

    Django 上传图片Admin站点5.2

    否则,FILES 将为一个空类似于字典对象 使用模型处理上传文件:将属性定义成models.ImageField类型 pic=models.ImageField(upload_to='cars/')...type="file" name="pic"/> 手动上传视图代码...startproject创建项目模版中,默认Admin被启用 1.创建管理员用户名密码 python manage.py createsuperuser 然后按提示填写用户名、邮箱、密码 2.在应用内...admin.py文件完成注册,就可以在后台管理中维护模型数据 from django.contrib import admin from models import * admin.site.register...对象 ModelAdmin类是模型在Admin界面中表示形式 定义:定义一个类,继承于admin.ModelAdmin,注册模型使用这个类 class HeroAdmin(admin.ModelAdmin

    46330

    四、其它(一)ModelAdmin对象InlineModelAdmin对象重写admin模板Paginator对象Page对象示例

    否则,FILES 将为一个空类似于字典对象 使用模型处理上传文件:将属性定义成models.ImageField类型 pic=models.ImageField(upload_to='cars/')...startproject创建项目模版中,默认Admin被启用 1.创建管理员用户名密码 python manage.py createsuperuser 然后按提示填写用户名、邮箱、密码 2.在应用内...admin.py文件完成注册,就可以在后台管理中维护模型数据 from django.contrib import admin from models import * admin.site.register...对象 ModelAdmin类是模型在Admin界面中表示形式 定义:定义一个类,继承于admin.ModelAdmin,注册模型使用这个类 class HeroAdmin(admin.ModelAdmin...Ajax 使用视图通过上下文向模板中传递数据,需要先加载完成模板静态页面,再执行模型代码,生成最张html,返回给浏览器,这个过程将页面与数据集成到了一起,扩展性差 改进方案:通过ajax方式获取数据

    4.5K20

    35.Django2.0文档

    在这个模式中, Model 代表数据存取层,View 代表是系统中选择显示什么怎么显示部分,Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图那部分。      ...M:数据存取部分,由django数据库层处理,本章要讲述内容。   V:选择显示哪些数据要显示以及怎样显示部分,由视图模板处理。   ...C:根据用户输入委派视图部分,由 Django 框架根据 URLconf 设置,对给定 URL 调用适当Python 函数  由于 C 由框架自行处理,而 Django 里更关注模型(Model...)、模板(Template)视图(Views),Django 也被称为MTV 框架。...该层处理与表现相关决定: 如何在页面或其他类型文档中进行显示。   V:代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板相关逻辑。 你可以把它看作模型与模板之间桥梁。

    11.3K100
    领券