You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django项目Teacher模型配置:允许同名同年龄不同service的教师

解决Django Teacher模型支持姓名年龄相同但service不同的问题

你的现有模型已经满足需求,直接就能存储姓名、年龄相同但service字段不同的教师数据,原因如下:

Django会自动给每个模型添加一个自增的主键字段id,这条字段是每条记录的唯一标识。哪怕name和age完全一致,只要是不同的记录(不管service是否相同),数据库都会通过id来区分并存储。

验证步骤(通过Django Shell)

打开项目终端,输入以下命令进入Shell:

python manage.py shell

然后执行创建记录的代码:

from your_app_name.models import Teacher
# 创建两条姓名、年龄相同,但service不同的记录
Teacher.objects.create(name='Arnaud', age=29, service='Science')
Teacher.objects.create(name='Arnaud', age=29, service='Geologie')

查询验证:

# 会返回两条符合条件的记录
Teacher.objects.filter(name='Arnaud', age=29)

需要避免的错误操作

不要给模型添加以下约束,否则会禁止存储姓名、年龄相同的记录:

  • 不要设置unique_together = (('name', 'age'),)
  • 不要给name或age字段单独加unique=True参数
  • 不要用UniqueConstraint限制name和age的组合唯一性

内容的提问来源于stack exchange,提问作者Pathia Nanto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:55:21