首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在django中搜索外键字段

在Django中搜索外键字段可以使用__(双下划线)操作符来实现。__操作符用于在查询中访问模型之间的关系。

假设我们有两个模型,一个是Author(作者)模型,另一个是Book(书籍)模型,其中Book模型有一个外键字段指向Author模型:

代码语言:txt
复制
from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

要在Book模型中搜索外键字段author,可以使用__操作符来指定搜索条件。以下是一些常见的用法:

  1. 精确匹配:使用__exact或简写为=来进行精确匹配。
代码语言:txt
复制
books = Book.objects.filter(author__exact='John')
  1. 忽略大小写匹配:使用__iexact来进行忽略大小写的匹配。
代码语言:txt
复制
books = Book.objects.filter(author__iexact='john')
  1. 包含匹配:使用__contains来进行包含匹配。
代码语言:txt
复制
books = Book.objects.filter(author__contains='John')
  1. 开头匹配:使用__startswith来进行开头匹配。
代码语言:txt
复制
books = Book.objects.filter(author__startswith='J')
  1. 结尾匹配:使用__endswith来进行结尾匹配。
代码语言:txt
复制
books = Book.objects.filter(author__endswith='n')
  1. 范围匹配:使用__in来进行范围匹配。
代码语言:txt
复制
authors = ['John', 'Jane']
books = Book.objects.filter(author__in=authors)
  1. 外键字段的属性匹配:使用__属性名来进行外键字段的属性匹配。
代码语言:txt
复制
books = Book.objects.filter(author__name='John')

以上只是一些常见的用法,Django还提供了更多的查询操作符,可以根据具体需求选择合适的操作符。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券