Django model中设置多个字段联合唯一约束

1,直接通过 models.ManyToManyField

from django.db import models

class UserInfo(models.Model):    username = models.CharField(max_length=32)    password = models.CharField(max_length=64)

class NewsType(models.Model):    caption = models.CharField(max_length=16)

class News(models.Model):    title = models.CharField(verbose_name=‘标题‘,max_length=32)    url = models.CharField(verbose_name=‘URL‘,max_length=255)    avatar = models.CharField(verbose_name=‘头像‘,max_length=255)    summary = models.CharField(verbose_name=‘简介‘,max_length=255)    new_type = models.ForeignKey(verbose_name=‘新闻类型‘,to="NewsType")    user = models.ForeignKey(verbose_name=‘发布者‘,to=‘UserInfo‘,related_name=‘c‘)    ctime = models.DateTimeField(verbose_name=‘创建时间‘,auto_now_add=True)    like_count = models.IntegerField(default=0)    comment_count = models.IntegerField(default=0)

like = models.ManyToManyField(to=‘UserInfo‘)

class Comment(models.Model):    content = models.CharField(verbose_name=‘评论内容‘,max_length=255)    new = models.ForeignKey(verbose_name=‘评论的新闻ID‘,to=‘News‘)    user = models.ForeignKey(verbose_name=‘评论者‘,to=‘UserInfo‘)    ctime = models.DateTimeField(verbose_name=‘评论时间‘, auto_now_add=True)
时间: 2024-08-25 12:02:26

Django model中设置多个字段联合唯一约束的相关文章

Django model 中设置联合约束和联合索引

来自:https://blog.csdn.net/ding_312/article/details/81264910 class Cart(models.Model): user = models.ForeignKey( MyUser, verbose_name="用户" ) goods = models.ForeignKey( Goods, verbose_name="商品" ) num = models.IntegerField( verbose_name=&q

django model中给自定义密码字段加密

使用hashlib库的sha1对数据进行加密 用户登陆的时候,也需要对密码进行加密处理后再进行验证,否则会登陆失败 在models中加如下内容 创建一个新用户就会发现已经是密文的密码了(这里说的创建密码不是叫你直接去数据库创建) 原文地址:https://www.cnblogs.com/HByang/p/12404236.html

Django model 中meta options之 abstract

当abstract=True时,这个model就变成了abstrct base class,那这个基类有什么特性呢? 当某一model中设置了abstract=True时,就会使该model中的字段都不会产生对应的表,而是可以作为基类加入到其他model中 那有什么用呢? 有时多个model有些相同的字段,这样很浪费时间,而且重复本身也不利于代码简洁.好该abstract来了 看官例: from django.db import models class CommonInfo(models.Mo

UUIDField在Django Model中的使用经验

今天下午在将数据库从旧库导入到新库时,完成后发现Django网站无法打开,报"ValueError, badly formed hexadecimal UUID string",最终定位到原因是一个UUIDField类型字段的值为0,造成Django无法将0验证为UUID类型,从而引发ValueError异常.现总结UUIDField在Django Model中的使用经验如下. 在Django中UUIDField类型的字段可以作为主键(主键是绝对不可能为NULL值的)使用,这个是丝毫没

models.Model中常用的数据字段格式说明

在models.Model中常用的数据字段格式说明 字段格式 可以使用的参数 说明 BigIntegerField 64位的大整数 BooleanField 布尔值,只有True和False两种 CharField max_length,min_length; 指定的接受字符串长度 DateField auto_now :每次存储时就自动加入当前日期auto_now_add: 只有在对象被创建时才加入当前日期(创建日期) 日期格式,可用于datetime.date DateTimeField 同

model中设置默认值时 ,使用 lambda 与否的差别以及datetime的默认值方法

'date': '2013-01-01'  #固定值 'date': time.strftime('%Y-%m-%d')  #启动时候的值 'date': lambda *a: time.strftime('%Y-%m-%d')  #当前日期   6.1后,官方建议date/datetime的默认值的写法是(能解决时区问题): 'birthdate': fields.date.context_today, 'create_at': fields.datetime.now, model中设置默认值

项目中客户端,服务端验证,数据库联合唯一约束,事务管理。

项目中有个需求,发布一个活动,记录下参加该活动的id和参与人id,同时调用接口,往收藏夹中添加一条记录,往交易表中添加一条记录.最后根据返回的结果,给出不同的提示信息. 1.如果当前的在jsp页面上面做处理,判断是否参与过.参加过之后,参加按钮不可点.没有参加的情况,参加按钮可以点. 2.jsp客户端加上js处理,参加按钮点击完之后,按钮不可点. 3.在controller中,业务逻辑开始前,再次java判断是否参加过该活动. 4.在数据库中参与表(活动id,参与人id)加上联合唯一约束.根据异

Django model 中的字段解释

Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长.你通常不需要直接使用这个字段:如果你不指定主键的话,系统会自动添加一个主键字段到你的model.(参阅自动主键字段) BooleanField:布尔字段,管理工具里会自动将其描述为checkbox. CharField:字符串字段,单行输入,用于较短的字符串,如要保存大量文本, 使用 TextField,Ch

获取django model 中得fields

UserProfile._meta.fields [<django.db.models.fields.related.OneToOneField: user>,  <django.db.models.fields.CharField: username>, <django.db.models.fields.CharField: nickname>, <django.db.models.fields.EmailField: email>, <django