簡體   English   中英

Django:通過另一個模型訪問模型的字段

[英]Django: Accessing a model's field through a another model

所以我有2個模型:

class Product(models.Model):
    BANANA = 'BAN'
    PRODUCT_CHOICES = (
        (BANANA, 'Banana'),
    ) 

    name = models.CharField(choices=PRODUCT_CHOICES, max_length=255, default=BANANA)
    shelf_life = models.IntegerField(null=True, blank=True)

class PurchasedOrder(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    purchased_date = models.DateTimeField(auto_now_add=True)
    expired = models.BooleanField(default=False)

目標:要獲取我所有尚未過期的購買訂單,並且購買日期少於現在的時間和產品的保質期。

我嘗試了以下sudo代碼ish,並且我想知道如何訪問PurchasedOrder的產品保質期,因為Purchase Order具有產品的外鍵。 我可以創建一些for循環,但是必須有一種方法可以通過PurchaseOrder訪問產品的保質期字段。

PurchasedOrder.objects.filter(
    expired=False,
    purchased_date__lt=F(datetime.now() - product__shelf_life),
)

感謝您的幫助<3

如果您使用的是PostgreSQL,那么此答案應該可以為您解決。

from datetime import timedelta
from django.utils import timezone

now = timezone.now()
PurchasedOrder.objects.filter(
    expired=False,
    purchased_date__lt=now - timedelta(days=1)*F("product__shelf_life"),
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM