django中数据查找条件是表中的外键对应表的列该如何查找?

Posted pclover11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django中数据查找条件是表中的外键对应表的列该如何查找?相关的知识,希望对你有一定的参考价值。

1 平常查找表中数据的条件是python中已有的数据类型,通过点运算符可以直接查找。如果条件是表中外键列所对应表的某一列,该如何查询数据?比如

class News(models.Model):
    title = models.CharField(max_length=50);
    summary = models.TextField();
    
    url = models.CharField(max_length=150);
    favorCount = models.IntegerField(default=0);
    favorUsername = models.TextField(default="");
    replyCount = models.IntegerField(default=0);

class Reply(models.Model):
    content = models.TextField();
    user = models.ForeignKey(User);
    newID = models.ForeignKey(News);
    replyTime = models.DateTimeField(auto_now_add=True);
    
    def __unicode__(self):
        return self.content;

像这样的数据表,想要查找对于博客id是3的所有回复?

 

方法一、首先获得外键指向的表中对象,然后通过‘_set’这样的方法获得目标表中的数据。

obj = models.News.objects.get(id=3)
replys = obj.reply_set.all()

方法二、直接在目标表中通过双下划线来指定外键对应表中的域来查找符合条件的对象。

models.Reply.objects.filter(newID__id=3)

 

以上是关于django中数据查找条件是表中的外键对应表的列该如何查找?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle外键需要建索引吗?

今日刷题总结10

MySQL之外键约束(FOREIGN KEY)

MySql外键

SQL怎么在有外键的主键表中插数据

mysql中的外键foreign key