Python Django错误相关字段的查找无效:icontains
我正在使用外键在django中进行搜索,但它显示了此错误“相关字段得到了无效的查找:icontains”我在这里发现了类似的情况,但没有工作,我认为错误在queryset_列表行的views.py中 models.pyPython Django错误相关字段的查找无效:icontains,python,django-models,django-views,django-queryset,Python,Django Models,Django Views,Django Queryset,我正在使用外键在django中进行搜索,但它显示了此错误“相关字段得到了无效的查找:icontains”我在这里发现了类似的情况,但没有工作,我认为错误在queryset_列表行的views.py中 models.py class Anos_dos_manuais(models.Model): ano = models.CharField(max_length=200) publicado = models.BooleanField(default=True) class Me
class Anos_dos_manuais(models.Model):
ano = models.CharField(max_length=200)
publicado = models.BooleanField(default=True)
class Meta:
verbose_name = 'Ano do manual'
verbose_name_plural = 'Anos dos manuais'
def __str__(self):
return self.ano
class Disciplina(models.Model):
título = models.CharField(max_length=200)
publicado = models.BooleanField(default=True)
class Meta:
verbose_name = 'Disciplina'
verbose_name_plural = 'Disciplinas'
def __str__(self):
return self.título
class Manuais(models.Model):
nome = models.CharField(max_length=200, null=True)
título = models.ForeignKey(Disciplina, on_delete=models.DO_NOTHING)
descrição = RichTextUploadingField(blank=False)
ano = models.ForeignKey(Anos_dos_manuais, on_delete=models.DO_NOTHING ,max_length=20, null=True, blank=True)
imagem = models.ImageField(upload_to='imagens/%Y/%m/%d/')
manual_pdf = models.FileField(upload_to="manuais/%Y/%m/%d", null=True, blank=False)
data_publicada = models.DateTimeField(default=datetime.now, blank=False, null=True)
publicado = models.BooleanField(default=True)
class Meta:
verbose_name = 'Manual'
verbose_name_plural = 'Manuais'
def __str__(self):
return self.nome
当使用“外来”和“icontains”进行搜索时,它不起作用,但在其他字段中它起作用
views.py
这里的
titulo
是一个ForeignKey
,指的是Desciplina
。您可能希望在该Desciplina
的titulo
字段上进行筛选,因此您应该向该字段添加查找,如:
queryset_list = queryset_list.filter(título__titulo__icontains=keywords)
# …
queryset_list = queryset_list.filter(título__titulo__icontains=manual_disciplina)
# ^ field
# ^ foreign key ^ lookup
queryset\u list=queryset\u list.filter(título\u titulo\u icontains=关键字)
# …
queryset_list=queryset_list.filter(título__titulo__icontains=manual_practica)
#^field
#^foreign key^ lookup
此处titulo
是一个外键
,指的是Desciplina
。您可能希望在该Desciplina
的titulo
字段上进行筛选,因此您应该向该字段添加查找,如:
queryset_list = queryset_list.filter(título__titulo__icontains=keywords)
# …
queryset_list = queryset_list.filter(título__titulo__icontains=manual_disciplina)
# ^ field
# ^ foreign key ^ lookup
queryset\u list=queryset\u list.filter(título\u titulo\u icontains=关键字)
# …
queryset_list=queryset_list.filter(título__titulo__icontains=manual_practica)
#^field
#^foreign key^查找