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

Django 外键引用另一个表中的多个字段

1、问题背景在 Django 中,模型之间的关系通常使用外键(ForeignKey)来建立。外键允许一个模型中的字段引用另一个模型中的主键。然而,有时我们需要在一个模型中引用另一个模型中的多个字段。...例如,我们有一个 product_models 表,其中包含产品的信息,如产品名称、价格和描述。...我们还有另一个 sales_process 表,其中包含销售过程的信息,如潜在客户、员工、首次联系时间等。...以下是如何在 Django 中使用复合主键来实现外键引用另一个表中的多个字段:在 product_models 模型中,添加一个 id 字段作为主键:class product_models(models.Model...以下是如何在 Django 中使用複合鍵的示例:# Get the product model with the specified nameproduct = product_models.objects.get

10610

Django-xadmin+rule对象级权限的实现

基于对象的权限控制(如:系统用户分为平台运营人员和商家用户,商家用户小A只能查看编辑所属商家记录,而管理员可以纵览全局) 3....数据库记录导入导出(xsl, json等),并且拥有对象级的权限控制(如:小A不能导出小B公司的信息,更不能导入小B公司信息进行更新和新增) 1.2 现状 实现需求1:Django-admin...): user = models.OneToOneField(User, verbose_name='用户名') is_taixiang_admin = models.BooleanField...('客户电话', max_length=12) type_choice = ((1, '普通'), (2, '批发'), (3, 'VIP')) creator = models.ForeignKey...itself from __future__ import absolute_import import rules # 使用修饰符@rules.predicate自定义predicates(判断),返回

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django 学习笔记之模型(下)

    因为从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet。 为了方便理解,我继续使用上篇文章的例子。另外方便我们在打印对象信息时,能得到对象的信息。所以我们需要对之前的代码做下修改。...分别为每个模型类添加一个方法 __unicode__()。 __unicode__() 方法告诉 Python 如何将对象以 Unicode 的方式显示出来。...self): return self.title __unicode__() 方法可以进行任何处理来返回一个 unicode 对象。...因为上限从 0 开始可以忽略不写,所以它等同于 [0:3]。查询出来结果没有包含上限的值,即下标为 3 的值。[:3] 只查询下标为 0, 1 ,2 的数据。...但是这里比较特殊,QuerySet 对象的 id 是从 1 开始的,所以 [:3] 表示 [1:3], 返回 id 为 1, 2, 3 的对象。 另外,这种切片操作时可以节约内存的。

    66930

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

    简介 Django是Python主流的 Web开发框架,功能强大,是Python Web应用开发的第一选择。 使用 Django,您可以在几个小时内完成 Web 应用程序从概念到启动的过程。...安全性: Django 内置了一些安全性功能,例如防止常见的 Web 攻击(如 CSRF 攻击),并提供了方便的用户身份验证和授权系统。...简易图: 用户操作流程图: 解析: 用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数: a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户...b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。 视图函数把返回的数据填充到模板中空格,最后返回网页给用户。...[root@solar HelloWorld]# 之后输入用户名密码登录,界面如下: 为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin。

    30910

    django开发个人简易Blog——数据模型

    oracle 'NAME':"mypythonblog", #数据库名称 'USER': 'xxxxxx', # 用户名...django.db.backends.mysql', 'NAME':"mypythonblog", 'USER': 'root', # 用户名...从图中可以看出创建了9个数据表,并且提示是否为系统创建一个超级管理员,为了以后登录系统,我们输入yes。 之后按照提示输入用户名及密码即可。...输入刚刚创建的超级用户的用户名和密码,点击login按钮,即来到如下的管理界面: ? 通过这个管理界面,可以方便的对用户组和用户进行管理,并且有详细的日志记录。...接下来,启动网站,访问http://127.0.0.1:1989/admin/ 输入用户名和密码,进入管理页面,咦,什么情况,说好的安装什么app就会出现对应的管理功能呢,怎么依然只有Auth这个app

    92480

    关于“Python”Django 管理网站的核心知识点整理大全52

    注意 如果你使用的是Python 2.7,应调用方法__unicode__(),而不是__str__(),但其中的代 码相同。...(ll_env)learning_log$ 你执行命令createsuperuser时,Django提示你输入超级用户的用户名(见1)。...这里我们输 入的是ll_admin,但你可以输入任何用户名,比如电子邮件地址,也可让这个字段为空(见2)。 你需要输入密码两次(见3)。 注意 可能会对网站管理员隐藏有些敏感信息。...向管理网站注册模型 Django自动在管理网站中添加了一些模型,如User和Group,但对于我们创建的模型,必须 手工进行注册。...现在,使用超级用户账户访问管理网站:访问http://localhost:8000/admin/,并输入你刚创建 的超级用户的用户名和密码,你将看到类似于图18-2所示的屏幕。

    17010

    07.Django学习之model进阶

    通常,查询集 的切片返回一个新的查询集 —— 它不会执行查询。...的缓存中并返回明确请求的结果(例如,如果正在迭代查询集,则返回下一个结果)。接下来对该查询集 的求值将重用缓存的结果。 请牢记这个缓存行为,因为对查询集使用不当的话,它会坑你的。...查询集不会永远缓存它们的结果。当只对查询集的部分进行求值时会检查缓存, 如果这个部分不在缓存中,那么接下来查询返回的记录都将不会被缓存。所以,这意味着使用切片或索引来限制查询集将不会填充缓存。...select_related 返回一个QuerySet,当执行它的查询时它沿着外键关系查询关联的对象的数据。它会生成一个复杂的查询并引起性能的损耗,但是在以后使用外键关系时将不需要数据库查询。...nid" = 1; args=(1,) 深层查询 # 查询id=1的文章的用户姓名 article=models.Article.objects.select_related("blog")

    2K30

    Django学习笔记之Queryset详解

    mananger的方法和QuerySet的方法大部分同名,同意思,如filter(),update()等,但也有些不同,如manager有create()、get_or_create(),而QuerySet...由于有些数据库,如Sqlite不支持delete与limit连用,所以在这些数据库对QuerySet的切片执行delete()会出错。...>>> from django.contrib.auth.models import User >>> from django.db.models import Count #计算每个用户的userjob...,它们的每个元素包含若干主表和关联表的字段,不包含任何实体和关联实例,这种情况要用values()和values_list();第四种:返回model instance;第五种:单个值,如aggregate...如果只想知道一个QuerySet有多大,而不想获取QuerySet中的每个元素,那就用count();如果已经从数据库获取到了QuerySet,那就用len() 2.4.12  contains/startswith

    2.7K30

    Django后台管理之Admin actions自定义

    处理错误: 这其中,如果你能够预知在自定义的操作中可能产生的错误,请处理该错误,并通过django.contrib.admin.ModelAdmin.message_user()以友好的方式给予用户提示信息...但有时候,一些复杂的action需要返回中间页面,例如内置的删除方法,在执行删除动作之前,会弹出一个删除确认页面。...要实现这个功能,只需要在action方法中返回一个HttpResponse(或它的子类)。...该方法将返回一个包含actions的字典。...字典的键是aciton的名字(也就是前面的'delete_selected', 'a_third_action'之类),值是一个元组,包含(函数、名字、别名) 例如,允许用户名以“J”开头的用户批量删除对象

    2.2K50

    Django-model进阶(中介模型,查询优化,extra,整体插入)

    通常,查询集 的切片返回一个新的查询集 —— 它不会执行查询。...首次对查询集进行求值 —— 同时发生数据库查询 ——Django 将保存查询的结果到查询集的缓存中并返回明确请求的结果(例如,如果正在迭代查询集,则返回下一个结果)。...查询集不会永远缓存它们的结果。当只对查询集的部分进行求值时会检查缓存, 如果这个部分不在缓存中,那么接下来查询返回的记录都将不会被缓存。所以,这意味着使用切片或索引来限制查询集将不会填充缓存。...select_related 返回一个QuerySet,当执行它的查询时它沿着外键关系查询关联的对象的数据。它会生成一个复杂的查询并引起性能的损耗,但是在以后使用外键关系时将不需要数据库查询。...nid" = 1; args=(1,) 深层查询 1 2 3 4 # 查询id=1的文章的用户姓名       article=models.Article.objects.select_related

    1.6K70

    django 1.8 官方文档翻译: 1-1-1 Django初探

    (max_length=70) def __unicode__(self): return self.full_name class Article(models.Model...>>> r.delete() 一个动态的管理接口:它不仅仅是个脚手架 – 还是个完整的房子 一旦你的 models 被定义好,Django 能自动创建一个专业的,可以用于生产环境的 管理界面 – 一个可让授权用户添加...正则表达式通过圆括号来“捕获” URLs 中的值。当一个用户请求一个页面时, Django 将按照顺序去匹配每一个模式,并停在第一个匹配请求的 URL 上。...编写你的视图(views) 每个视图只负责两件事中的一件:返回一个包含请求页面内容的 HttpResponse 对象; 或抛出一个异常如 Http404 。至于其他就靠你了。...您可以使用其他数据库抽象层,您可以读取 XML 文件,你可以从磁盘中读取文件,或任何你想要的方法去操作数据。 Django 的每个组成部分: 模型、视图和模板都可以解耦,以后会谈到。

    76620

    Django实现收藏功能

    我的 Django 项目里的用户可以发图片。 我想实现一个收藏功能,就是用户可以收藏其他用户发布的图片。...= models.ForeignKey(Pictures) created_on = models.DateTimeField(auto_now_add=True) def __unicode...        fav_type = request.POST.get('fav_type', 0)         # 收藏与已收藏取消收藏         # 判断用户是否登录:即使没登录会有一个匿名的...user         if not request.user.is_authenticated:             # 未登录时返回json提示未登录,跳转到登录页面是在ajax中做的            ...course_org.id }}, 2); }); BLOG_20190604_140507_46 机构信息页面视图添加收藏状态 例如机构首页,添加has_fav来检测是否已收藏,且需要用户登录的

    97420
    领券