Var*_*dha 2 django django-models django-forms django-admin
嗨我正在设置我的Django模型的一个字段的值等于其他模型的其他字段的值.此值应动态更改.
这是我的第一个模特
class MainModel(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(
verbose_name='Email Address',
max_length=255,
unique=True)
payment_online = models.ForeignKey(OnlinePayments, null=True, blank=True)
register_date = models.DateTimeField(default=datetime.now, blank=True)
purchase_date = models.CharField(max_length=32, default='')
is_csr = models.BooleanField(default=False)
is_admin = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)
这是第二个模型
class OnlinePayments(models.Model):
payer_email = models.CharField(max_length=255, default=None, null=True)
payer_name = models.CharField(max_length=255, default=None, null=True)
timestamp = models.DateTimeField(auto_now_add=True, blank=True)
def __str__(self):
return self.payer_email
Run Code Online (Sandbox Code Playgroud)
我想在MainModel中将purchase_date的值设置为等于OnlinePayments中的时间戳值.
任何帮助都会得到帮助
您实际上不需要维护具有相同值的两个字段.
我将定义一个方法MainModel并timestamp从相关模型中获取:
class MainModel(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(
verbose_name='Email Address',
max_length=255,
unique=True)
payment_online = models.ForeignKey(OnlinePayments, null=True, blank=True)
...
def get_purchase_date(self):
return self.payment_online.timestamp if self.payment_online else None
Run Code Online (Sandbox Code Playgroud)