简体   繁体   English

如何通过 Django 视图中的外键访问其他 model 字段

[英]How to access other model fields through foreign key in Django Views

I want to query from OrderItem Model like total_orders = OrderItem.objects.filter(product.user == request.user.id).count() but i am getting error我想从 OrderItem Model 像 total_orders = OrderItem.objects.filter(product.user == request.user.id).count() 查询,但我收到错误

** NameError at /home name 'product' is not defined ** ** NameError at /home name 'product' is not defined **

MY MODELS:我的模型:

Product Model:产品 Model:

class Product(models.Model):
    title = models.CharField(max_length=150)
    user = models.ForeignKey(
        User, blank=True, null=True, on_delete=models.SET_DEFAULT, default=None)
    description = models.TextField()
    price = models.FloatField()
    quantity = models.IntegerField(default=False, null=True, blank=False)
    minorder = models.CharField(
        max_length=150, help_text='Minum Products that want to sell on per order', null=True, default=None, blank=True)
    image = models.ImageField()

    category = models.ForeignKey(
        Categories, default=1, on_delete=models.CASCADE)
    slug = models.SlugField(blank=True, unique=True)

    def __str__(self):
        return self.title

Order Item Model订单项目 Model

class OrderItem(models.Model):
    product = models.ForeignKey(
        Product, on_delete=models.SET_NULL, blank=True, null=True)
    order = models.ForeignKey(
        Order, on_delete=models.SET_NULL, blank=True, null=True)
    quantity = models.FloatField(default=0, null=True, blank=True)
    date_orderd = models.DateTimeField(auto_now_add=True)
    user = models.ForeignKey(
        User, on_delete=models.SET_NULL, blank=True, null=True)
    price = models.FloatField(blank=True, null=True)

    def __str__(self):
        return str(self.product)

My View:我的观点:

def home(request):
total_orders = OrderItem.objects.filter(
        product.user == request.user.id).count()
    return render(request, "sellerprofile/home.html", {'total_orders': total_orders})

Do:做:

total_orders = OrderItem.objects.filter(product__user=request.user).count()

You can look at the documentation here about field lookups on more detail.您可以在此处查看有关字段查找的文档,了解更多详细信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM