我在 django 项目中创建了一个学生模型,其中有一个名为“enrollmentdate”和“ paymentdate”的字段,现在我需要将“ paymentdate”保存为“enrollmentdate”中的默认值
我的模型代码如下,
> ```
class Student(models.Model):
fname = models.CharField(max_length=100)
lname = models.CharField(max_length=100)
email = models.CharField(max_length=100)
password=models.CharField(max_length=100)
contactno = models.CharField(max_length=100)
address = models.TextField()
grade=models.CharField(max_length=100)
enrollmentstartdate=models.DateField()
enrollmentenddate=models.DateField()
daysremaining=models.IntegerField()
feespaid=models.DecimalField(max_digits=6, decimal_places=2)
paymentdate=models.DateField()
> ```
我该怎么做?
提前致谢
我已经尝试过了
注册日期=models.DateField(默认=付款日期)
但不起作用
您可以通过重写模型的 save() 方法来实现此目的。
class Student(models.Model):
fname = models.CharField(max_length=100)
lname = models.CharField(max_length=100)
email = models.CharField(max_length=100)
password = models.CharField(max_length=100)
contactno = models.CharField(max_length=100)
address = models.TextField()
grade = models.CharField(max_length=100)
enrollmentstartdate = models.DateField()
enrollmentenddate = models.DateField()
daysremaining = models.IntegerField()
feespaid = models.DecimalField(max_digits=6, decimal_places=2)
paymentdate = models.DateField()
def save(self, *args, **kwargs):
if not self.enrollmentstartdate:
self.enrollmentstartdate = self.paymentdate
super(Student, self).save(*args, **kwargs)
每当您保存学生对象并且未提供注册开始日期时,它将默认为付款日期的值。