如何在 Django 模型中使用查询?

拉辛查特里

我有 2 个不同的 Django 模型 User_deticals 和 Monthly_payment,现在我想在用户详细信息中设置Status= Active, Expire, Soon Expire, or Deactivated,我正在尝试此操作,但无法使用用户名和使用 2 个不同模型的不同字段收到日期有什么解决办法吗??这是我的模型

class Client_Detials(models.Model, object):
    First_name = models.CharField(max_length=100)
    Last_name = models.CharField(max_length=100)
    Address = models.CharField(max_length=100)
    Contact_1 = models.CharField(max_length=100)
    Contact_2 = models.CharField(max_length=100)
    Email = models.EmailField()
    Username = models.CharField(max_length=20)
    Password = models.CharField(max_length=20)
    cont_type = (
        ('Fiber', 'Fiber'),
        ('wireless', 'wireless'),
    )
    Connection_Type = models.CharField(choices=cont_type, max_length=12, default='Fiber')
    Internet_Plan = models.ForeignKey(Nas_Package, on_delete=models.CASCADE)
    Payment_Cycle = models.CharField(max_length=100, blank=True)
    User_Img = models.ImageField(upload_to='Client', default='user.jpg', blank=True)
    Created_by = models.OneToOneField(User, on_delete=models.CASCADE)
    Created_Date = models.DateTimeField(auto_now=True)
        def status(self):
        recharge = recharge_monthly.username
        if recharge == self.Username:
            date_to_re = recharge_monthly.received_date
            myd = datetime.datetime.now().date() - date_to_re
            print(myd)
            if myd.days < 20:
                return "Active"
            elif myd.days < 25:
                return "Expire Soon"
            elif myd.days <= 30:
                return "Expire"
            else:
                return "Expire From {} day".format(30 - myd.days)



class recharge_monthly(models.Model):
    username = models.ForeignKey(Client_Detials, on_delete=models.CASCADE)
    Total_amount = models.FloatField()
    Received_amount = models.FloatField(default=0.0)
    received_date = models.DateField(auto_now_add=True)
    is_vat_add = models.BooleanField()
    is_tsc_add = models.BooleanField()
    tsc_amount = models.FloatField()
    vat_amount = models.FloatField()
待定终结器

我可能是错的,但在我看来,您正在尝试访问 Client_details 模型中的相关 recharge_monthly 对象。如果这是您真正想要的,这里是解决方案。

我建议您在该username字段中添加一个参数,例如:

class recharge_monthly(models.Model):
    username = models.ForeignKey(Client_Detials, on_delete=models.CASCADE, related_name='recharges')

在此之后,您将能够访问父模型中的所有相关对象。然后,在def status()

@property
def status(self):
    recharge = self.recharges.last()
    date_to_re = recharge.received_date
    myd = datetime.datetime.now().date() - date_to_re
    if myd.days < 20:
        return "Active"
    elif myd.days < 25:
        return "Expire Soon"
    elif myd.days <= 30:
        return "Expire"
    else:
        return "Expire From {} day".format(30 - myd.days)

在这里我们定义,在Client_Details模型中我们将能够访问所有相关recharge_monthly对象。在该status函数中,我们获取最后创建的recharge_monthly对象,并根据该对象的创建时间返回一个状态。@property装饰使得像财产这一功能的行为,这将是方便,因为status功能现在成为在这里我们可以找到对象的状态真理的唯一地方。

我也不确定你是否确切知道你在这里做什么,以及需要如何做。这部分代码可以做一些事情来使它工作一点,但我完全不确定这个问题是关于什么的。如果您向我解释更多,我会很高兴,这样我们就可以继续前进并选择正确的解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Django中使用模型进行查询

如何在 JavaScript 中使用 Django 的模型

如何在Django中使用联接查询?

如何在 Django 中使用 NOT IN sql 查询

如何在for循环中使用Django模型?

如何在信号中使用Django模型继承?

如何在信号中使用Django模型继承?

如何在DJango中使用不同模型的外键

如何在 Django 中使用字典更新模型的表

如何在定制用户模型中使用django-guardian

如何在Django中使用模型的ID保存FileField

如何在 Django 中使用嵌套对象创建模型

如何在Django中使用模型表单编辑对象?

如何在 Django 模型中使用数组字段?

如何在Django中使用其他模型的主键作为模型名称生成模型

如何在 Django ORM 查询中的列中使用 timedelta?

如何在Django查询集中使用条件注释计数

如何在 Django 子查询中使用范围过滤?

如何在查询集中使用Django __time查找

如何在Django中使用LIKE语句执行mysql查询

如何在Django中使用count进行反向关系查询

如何在Django查询中使用分组依据求和

如何在Django查询中使用列表来添加字段

如何在 Django ORM 查询中的列中使用 timedelta?

如何在Django的子模型字段中使用抽象模型字段值作为默认值?

如何在 Django 中使用其他模型獲取模型對象

如何使用复杂的分组查询来查询Django模型?

如何在Linq查询中使用模型属性?

如何在子查询中使用 Eloquent 模型属性?