首页 > 解决方案 > 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从. 所以我想要,并显示出来。TextnameUploadnameemailtexts

我知道以前有人问这个问题,我也在做同样的事情,但是出错了。

我试过了, 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}}

标签: djangodatabase

解决方案


你有一个小错误,而不是upload__nameupload_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}}

推荐阅读