简体   繁体   English

Django获取具有外键的对象

[英]Django Get object if it has foreignkey

I'm creating an article app (in django) where articles can have images. 我正在创建一个文章应用程序(在Django中),其中文章可以包含图像。 I want to get articles only when they have at least one image. 我只想获得具有至少一张图像的文章。 I already tried: 我已经尝试过:

Article.objects.all().annotate(num_extra=Count("Image")).order_by("-num_extra")

But that only returned a sorted queryset starting with the most images and thats not wat I want. 但这只返回了以最多图像开始的排序查询集,而那不是我想要的。 Is there a way to do that? 有没有办法做到这一点?

My models.py 我的models.py

class Article(models.Model):
    id = models.CharField(max_length=8, default=None, primary_key=True, blank=True, verbose_name="ID", unique=True, editable=False)
    Category = models.ForeignKey(Category, default=None, on_delete=models.CASCADE, verbose_name="Kategorie")
    text = models.CharField(max_length=678543)
    #And some other fields
class Image(models.Model):
    Article = models.ForeignKey(Article, on_delete=models.CASCADE, default=None, verbose_name="Artikel")
    authors = models.ManyToManyField(User, verbose_name="Autor", default=None, blank=True)
    #And some other fields

您可以过滤图像中不存在Image尝试以下操作:

Article.objects.filter(image__isnull=False)

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

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