django - 如果它是外键,如何使用过滤器过滤掉数据?
问题描述
我有两个模型:
轮廓模型
class Profile(models.Model):
idno=models.AutoField(primary_key=True)
name=models.CharField(max_length=30)
email=models.CharField(max_length=40)
username=models.CharField(max_length=30)
def __str__(self):
return self.username
连接请求模型
class ConnectRequest(models.Model):
idno = models.AutoField(primary_key=True)
sender = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name="sender")
receiver = models.ForeignKey(Profile,on_delete=models.CASCADE, related_name="receiver")
def __str__(self):
return f"{self.sender} to {self.receiver} "
当我试图过滤掉发件人假设为“XYZ”的所有数据时,它在外壳上给了我一个错误
obj=ConnectRequest.objects.filter(sender="XYZ")
“idno 期望一个数字,但得到了”xyz“
我已经尝试了所有这些东西,但它仍然没有工作并给出错误
obj=ConnectRequest.objects.filter(sender.name="XYZ")
obj=ConnectRequest.objects.filter(Profile.name="XYZ")
解决方案
你可以试试这个代码片段
from django.db.models import Q
obj=ConnectRequest.objects.filter(Q(sender__name__icontains="XYZ")|Q(sender__username__icontains="XYZ"))
推荐阅读
- coldfusion - 如何从应用程序 cfc 文件中引用第二个数据库
- python - 在sql的两个查询中使用格式
- python - 如何在 OpenCv 中使用单应矩阵拼接两个图像?
- javascript - React-Router useHistory 抛出 TypeError
- javascript - 如何使用日期 ID 从数组中删除并单击?
- flutter - Github Actions Flutter CI 错误:没有匹配的 NDK 版本
- android - 无法在片段中显示图像
- python - 安装 flask-mysqldb 给出“mysql_config not found”
- javascript - 如何使用 react-router 制作“404 - Not Found”页面/路由?
- matlab - 使用加载的 TFORM 结构运行 tforminv