【问题标题】:Django ForeignKey filter issueDjango ForeignKey 过滤器问题
【发布时间】:2016-12-21 14:19:35
【问题描述】:

无论如何要在 django 外键字段上添加过滤器。

class Product(models.Model):
    name = models.CharField(max_length=100)
    category = models.ForeignKey(Category)
    image = models.ImageField()
    description = models.TextField()

    def __str__(self):
        return self.name

【问题讨论】:

    标签: python django


    【解决方案1】:

    是的。您可以像这样使用key__ 语法:

    products = Product.objects.filter(category__name='Tops')
    

    只需确保__ 之后的内容出现在Category 模型中,您就可以开始了。你可以阅读更多about how django handles cross-relationship filtering here


    您也可以只通过相关ID本身查询:

    category = Category.objects.get(id=25)
    products = Producct.objects.filter(category_id=25)
    

    【讨论】:

    • 我正在使用group = models.ForeignKey(Category.objects.filter(group__category__name="foo")),但出现错误django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
    • 这意味着你没有使用带有标准 manage.py 的 django。如果是这样的话:stackoverflow.com/questions/24793351/django-appregistrynotready
    猜你喜欢
    • 2022-11-12
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多