我无法解释为什么此模型查询返回空查询集。。。
以下是我的型号:
class Marks(models.Model):
klass = models.ForeignKey(Klass,on_delete=models.SET_NULL,null=True,blank=True)
stream = models.ForeignKey(Stream,on_delete=models.SET_NULL,null=True,blank=True)
mark = models.IntegerField()
class Klass(models.Model):
name = models.CharField(max_length=20)
视图。
def ResultsView(request):
query = request.GET.get('klass')
if query:
queryset = (Q(klass__name__icontains=query))
the_student = Marks.objects.filter(queryset).distinct()
all_results = {'the_student':the_student,'query':query}
else:
all_results = {}
return render(request,'exams.html',all_results )
表单模板
<form action="{% url 'search_marks' %}" method="GET">
<div class="input-group">
<input class="" style="flex:50%" type="text" name="klass">
<button class="btn btn-primary" type="submit"></button>
</div>
</form>
url
path('search_m',ResultsView,name='search_marks'),
我试着在这里得到结果
{% for mark in the_student %}
{{ mark }}
{% endfor %}
当我从视图中打印_student时,它会给出<QuerySet []>
当我尝试queryset = (Q(mark__icontains=query))
时,会得到一个答案。我只想要克拉斯的结果
我认为您在模板中使用了整个查询集。
尝试
{% for mark in the_student %}
{{ mark.klass }}
{% endfor %}
_Student是您的响应键,但您使用_Student。
the_student!=研究
你只要换
{% for mark in the_student %}
{{ mark.klass }}
{% endfor %}
至
{% for mark in the_Student %}
{{ mark.klass }}
{% endfor %}