我有模特
SiswaID = models.AutoField(primary_key=True)
WaliKelasID = models.CharField(max_length=11, blank=True, null=True)
SiswaKelas = models.ForeignKey(biayapendidikan, null=True, blank=True)
class biayapendidikan(models.Model):
BiayaID=models.AutoField(primary_key=True)
BiayaSpp=models.IntegerField(null=True, blank=True)
BiayaDpps=models.IntegerField(null=True,blank=True)
Kelas=models.CharField(max_length=10, null=True, blank=True)
Unit=models.CharField(max_length=1, null=True, blank=True)
BiayaKeterangan=models.CharField(max_length=255, null=True, blank=True)
def __str__(self):
return self.Kelas
我想通过SiswaKelas(ForeignKey)
在模板中过滤它keyword2=request.GET['tingkat']
siswa['listsiswa'] = DataPribadiSiswa.objects.filter(Q(SiswaKelas__icontains = keyword2))
return render(request, 'index.html', siswa)
当我运行它时,我收到此错误
Related Field got invalid lookup: icontains
答案 0 :(得分:1)
首先。模型属性应该是小写的,并且_
下划线。
其次。如果您想在外键上使用不区分大小写的包含测试icontains
,则需要提供您想要过滤的属性。
最后,您不需要在此处使用Q
对象。
在你的情况下,它将是:
DataPribadiSiswa.objects.filter(siswa_kelas__some_name__icontains=keyword2))