我是django的新手。我目前试图做的是将一个值设置为其他字段,该值是主键,根据在同一模型中输入的值自动生成,不可编辑。这里有一个例子:
class Student(models.Model):
student_id = models.CharField(max_length=100, primary_key=true)
name = models.CharField(max_length=100)
class = models.CharField(max_length=200)
roll_no = models.CharField(max_length=500)
所以,我试图实现的是,如果有人输入以下信息:
name = Haris
class = 8th
roll_no = 104011
自动生成的主键对于字段"是不可编辑的;student_id";将是:
student_id = Haris_8th_104011
有人知道如何做到这一点吗?希望我的例子能清楚地说明问题。
您可以通过这种方式覆盖保存方法。请注意,类变量clashesh与原始内置类名冲突,请在我更改变量名时迁移一次
class Student(models.Model):
student_id = models.CharField(max_length=100, primary_key=True, editable=False)
name = models.CharField(max_length=100)
classes = models.CharField(max_length=200)
roll_no = models.CharField(max_length=500)
def save(self, *args, **kwargs):
self.student_id = f'{self.name}_{self.classes}_{self.roll_no}'
super(Student,self).save(*args, **kwargs)