Если требование для department_id
является уникальным, вы можете использовать первичный ключ Student
. Так что, если вам абсолютно не нужно department_id
хранится в базе данных. Я бы определил его на лету после того, как вы извлекли экземпляр студента из базы данных.
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)
def department_id(self):
return f"{self.department}{self.id}"
Это добавит первичный ключ Student
к строке отдела.
Вы можете использовать это в ваших шаблонах вот так.
<ul class="student">
<li>Name: {{ a_student.name }}</li>
<li>Dep ID: {{ a_student.department_id }}</li>
</ul>
Если вам нужно отобразить это в Django admin, вы можете добавить к вышеуказанному методу department_id
, как этот.
def department_id(self):
return f"{self.department}{self.id}"
department_id.short_description = "Department ID"
Теперь вы можете использовать department_id
в качестве поля только для чтения в Django admin.
Наконец, если вы хотите, чтобы идентификатор имел начальные нули, вы можете использовать zfill()
.
def department_id(self):
return f"{self.department}{str(self.id).zfill(4)}"