gpt4 book ai didi

django - 如何将 Django 模型的一个字段的值设置为等于其他 Django 模型的其他字段

转载 作者:行者123 更新时间:2023-12-01 09:25:57 34 4
gpt4 key购买 nike

嗨,我正在将我的 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)

这是第二个模型

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

我想将 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

关于django - 如何将 Django 模型的一个字段的值设置为等于其他 Django 模型的其他字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23966366/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com