我在django中创建了一个模型供学生参考
<!-- language: python -->
class student(models.Model):
department_choices=(('cse','cse'),('mech','mech'),('EEE','EE'))
name=models.CharField(max_length=35)
department=models.CharField(max_length=30,choices=department_choices)
我希望为部门生成唯一的id,例如,如果我选择cse部门id应为cse0001、cse002,或者如果mech意味着id应为mech001、mech002,我该怎么办
我建议首先使用
Department
模型,但是如果您真的需要在Student
模型上使用它的话。我会在模型中添加一个额外的字段,然后在模型保存时填充它。这样,您可以确保唯一性,并在任何ORM筛选或其他操作中使用它:现在,如果您试图创建一个具有现有
department_id
的学生,将抛出一个IntegrityError
,因为我们可以使用department_id
字段上的unique=True
参数强制唯一性如果
department_id
的要求是它是唯一的,那么可以使用Student
主键。因此,除非您绝对需要存储在数据库中的department_id
。我会在您从数据库中检索到学生实例后立即确定它这将把
Student
主键附加到部门字符串您可以像这样在模板中使用它
如果您需要在Django admin中显示它,您可以像这样添加到上面的
department_id
方法中现在,您可以在Django admin中使用
department_id
作为只读字段最后,如果希望ID具有前导零,可以使用
zfill()
相关问题 更多 >
编程相关推荐