django-admin 设计User外键,设计model

设置外键

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)

原文地址:https://www.cnblogs.com/wuqingzangyue/p/5457897.html