django - django过滤外键表和主键表数据
问题描述
我有这两个模型
class Upload(models.Model):
name=models.CharField(max_length=100)
email=models.EmailField(max_length=50)
class Text(models.Model):
texts=models.CharField(max_length=500,null=True,blank=True)
upload_text=models.ForeignKey(Upload, blank=True, null=True, on_delete = models.CASCADE)
我想要的是texts
从. 所以我想要,并显示出来。Text
name
Upload
name
email
texts
我知道以前有人问过这个问题,我也在做同样的事情,但是出错了。
我试过了,
data=Text.objects.filter(upload__name__icontains=query)
但它给了我一个错误
Cannot resolve keyword 'upload' into field. Choices are: id, texts, upload_text, upload_text_id
我也试过这个。
data=Upload.objects.filter(name__icontains=query)
data1=Text.objects.filter(upload_text__in=data)
但我无法在 jinja2 模板中同时显示两者。
{% for q,t in zip(query_key,query_res) %}
{{ t.texts }} {{ q.name }} | {{q.email}}
解决方案
你有一个小错误,而不是upload__name
它upload_text__name
:
data=Text.objects.filter(upload_text__name__icontains=query)
而且,您的模板:
{% for text in data %}
{{ text.texts }} {{ text.upload_text.name }} | {{text.upload_text.email}}
推荐阅读
- python - python中的for循环和if语句
- batch-file - 7Zip 通过批处理和任务计划程序压缩非常慢
- powerbi - Power BI DAX - 具有过滤器的总列的百分比
- python - 在 pandas 的另一个中创建一个具有值的新列
- javascript - HTTP 请求后 JSON 输入意外结束
- django - Django 管理员能够将图像上传到 S3 存储桶,但无法加载到模板上
- ios - 为具有多个部分的表视图创建搜索栏
- javascript - 如何通过调用 next(error) 来测试 express 中间件是否抛出错误
- c# - Asp.Net Core 3.1 MVC 客户端验证不适用于位于 Areas 文件夹中的视图
- python - python discord.py 二十一点游戏输了就会给硬币