设置外键

class profile_user(AbstractBaseUser, PermissionsMixin):
company = models.ForeignKey(Company, default=2,verbose_name='单位名称')
USERNAME_FIELD = 'userna'
REQUIRED_FIELDS = ['username'] class Meta:
verbose_name = _('user')
verbose_name_plural = _('users')
# abstract = True 不设为抽象的,不然会报错
unique_together = (("username", "company"),)
db_table ='auth_user'

将username和company连接起来判断唯一

设置USERNAME_FIELD为新定义的一个字段,将username和company连接起来判断唯一,实现了不同company下面可以有相同username,

通过unique_together = (("username", "company"),)这个来设置。

default,字段为空,字段名,表名

company = models.ForeignKey(Company, default=2,verbose_name='单位名称'),default这个还挺好用,指定哪个model可以添加,要不然添加的时候出问题,因为Company如果还没创建添加User就会出错。

usertype = models.CharField(max_length=2,
choices=(
('gl','管理员'),
('md','普通用户'),
),null=False,blank=False,default='md',verbose_name='用户类型')

这个可以显示一个下拉框在admin后台,让你进行选择,('gl','管理员'),前面的为保存字段名称,后面的为显示字段名称,default='md',默认显示

contact = models.CharField(max_length=30, verbose_name='联系人', blank=True, null=True),一般是这么写字段可以设定为空blank=True, null=True

contact = models.CharField(max_length=30, verbose_name='联系人', blank=True, null=True),verbose_name='联系人'设置显示在admin字段名称

class Meta:
verbose_name = '客户'
verbose_name_plural = verbose_name
db_table = 'auth_custom'

verbose_name = '客户'

verbose_name_plural = verbose_name

db_table和verbose_name都可以设置显示表名称,我倒是忘记了有什么区别了。

设置字段

设置数值字段小数点后有六位

lng = models.DecimalField(max_digits=10, decimal_places=6, verbose_name='经度',blank=True,null=True)

django-admin 设计User外键,设计model的更多相关文章

  1. django admin编辑被外键关联的主表时支持显示字表记录

    假设有模型 class A(models.Model): name = models.CharField() class B(models.Model): name = models.CharFiel ...

  2. 【Python】django模型models的外键关联使用

    Python 2.7.10,django 1.8.6 外键关联:http://www.bubuko.com/infodetail-618303.html 字段属性:http://www.cnblogs ...

  3. django开发中关于外键设置

    django开发中关于外键设置 我们建模型的时候会用到ForeignKey 而由于外键的约数会导致一些保存 所有我们ctrl+左键进入源码 源码 def __init__(self, to, on_d ...

  4. Django学习——Django测试环境搭建、单表查询关键字、神奇的双下划线查询(范围查询)、图书管理系统表设计、外键字段操作、跨表查询理论、基于对象的跨表查询、基于双下划线的跨表查询

    Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 ...

  5. Django学习手册 - ORM 外键

    Django 外键创建 关键语法: models.ForeignKey("UserGroup",to_field="gid",default=1,on_dele ...

  6. Django 中跨 app 创建外键、多对多引用的方法

    问题描述 我的 Django 项目中有两个 app. 在 PersonalCenter app下的 models.py 下定义了一个 Footprint 类: 在 LoginAndRegister a ...

  7. python django中的orm外键级联删除

    今天添加了一个路由表,路由表做外键,然后添加了几个组,路由表为组的外键,当我使用删除功能对路由表进行删除时,竞然将我的组也相当的删除了:尽管这是测试,但放到生产环境中还是会发生意外的:这个问题要解决: ...

  8. Django(15)外键和表关系

    外键删除操作 如果一个模型使用了外键.那么在对方那个模型被删掉后,该进行什么样的操作.可以通过on_delete来指定.可以指定的类型如下: CASCADE:级联操作.如果外键对应的那条数据被删除了, ...

  9. Django框架表关系外键-多对多外键(增删改查)-正反向的概率-多表查询(子查询与联表查询)

    目录 一:表关系外键 1.提前创建表关系 2.目前只剩 书籍表和 书籍作者表没创建信息. 3.增 4.删 5.修改 二:多对多外键增删改查 1.给书籍绑定作者 2.删 3.修改 4.清空 三:正反向的 ...

随机推荐

  1. smali语句类的静态成员查看,invoke-virtual、invoke-direct、invoke-super解释

    smali举例: .class public Lcom/dataviz/dxtg/common/android/DocsToGoApp; .super Landroid/app/Application ...

  2. GroupCoordinator joingroup源码解析

    转发请注明原创地址 http://www.cnblogs.com/dongxiao-yang/p/7463693.html kafka新版consumer所有的group管理工作在服务端都由Group ...

  3. 转:c++里关于cerr,clog,cout三者的区别

    c++里关于cerr,clog,cout三者的区别: cerr(无缓冲标准错误)-----没有缓冲,发送给它的内容立即被输出 clog(缓冲标准错误)--------有缓冲,缓冲区满时输出 cout- ...

  4. 内核交互--debugfs_转

    转载:Linux内核里的DebugFS DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据.类似的虚拟文件系统还有procfs和sysfs等,这 ...

  5. String类和StringBuilder

    1,首先,明确一点,String对象是不可变的,这个不可变的意思是说:任何看起来修改String值的方法,实际上都是创建了一个新的String对象. 2,String对+号操作符进行了重载,而这个重载 ...

  6. windows下mysql区分大小写敏感问题

    默认情况下,表别名在Unix上区分大小写,但在Windows或macOS上不是这样.以下语句在Unix上不起作用,因为它引用别名as a和as A: mysql> SELECT col_name ...

  7. 多媒体开发之---h264格式详解

    http://blog.csdn.net/bluebirdssh/article/details/6533501 http://blog.csdn.net/d_l_u_f/article/detail ...

  8. GoogleMap-------解决不能使用问题

    前言:由于中国大部分Android手机中的Google服务都被阉割掉了,所以导致GoogleMap无法使用,可以用一下方法解决. 1.不能使用GoogleMap 2.若手机上装有安装市场之类的软件可搜 ...

  9. 加载Chrome&Firefox配置

    一.加载Chrome配置 分析: Chrome加载配置的方法,只需要改下面一个地方,就是将username改成你本机电脑的名字(不要用中文) '--user-data-dir=C:\Users\use ...

  10. JS原生追加子节点

    var fragment = document.createDocumentFragment(); li = document.createElement('li'); li.className = ...