Django Ошибка Невозможно использовать None в качестве значения запроса
Я следую базовому руководству по поиску в https://learndjango.com/tutorials/django-search-tutorial. но без админа. выдает ошибку Cannot use None as a query value, но когда я перехожу к оболочке python shell, она выдает мне studid и studlastname, которые я хочу
>>>from clearance.models import Student
>>>query=Student.objects.using('srgb').get(studid__icontains='2012-5037')
>>><QuerySet [<Student: Student object (2012-5037)>]>
>>>query.studid
'2012-5037'
>>>query.studlastname
'Michael'
views.py
class SearchResultsView(ListView):
model = Student
template_name = 'clearance/search.html'
def get_queryset(self):
query = self.request.GET.get("q")
object_list = Student.objects.using('srgb').get(
Q(studid__icontains=query) | Q(studlastname__icontains=query)
)
return object_list
search.html
<form action="{% url 'search_results' %}" method="get">
<input name="q" type="text" placeholder="Search...">
</form>
<h1>Search Results</h1>
<ul>
{% for result in object_list %}
<li>
{{ result.studid }}
</li>
{% endfor %}
</ul>
редактируйте models.py
class Student(models.Model):
studid = models.CharField(primary_key=True, max_length=9)
studlastname = models.CharField(max_length=35)
studfirstname = models.CharField(max_length=35)
studmidname = models.CharField(max_length=35, blank=True, null=True)
studsuffix = models.CharField(max_length=5, blank=True, null=True)
studpermaddr = models.CharField(max_length=100, blank=True, null=True)
studzip = models.CharField(max_length=4, blank=True, null=True)
studbirthdate = models.DateField(blank=True, null=True)
studbirthplace = models.CharField(max_length=40, blank=True, null=True)
studgender = models.CharField(max_length=1, blank=True, null=True)
studlegstatus = models.CharField(max_length=10, blank=True, null=True)
studcitizen = models.CharField(max_length=10, blank=True, null=True)
studreligion = models.CharField(max_length=50, blank=True, null=True)
studethnic = models.CharField(max_length=20, blank=True, null=True)
studfather = models.CharField(max_length=40, blank=True, null=True)
studmother = models.CharField(max_length=40, blank=True, null=True)
studpaddr = models.CharField(max_length=100, blank=True, null=True)
studspouse = models.CharField(max_length=40, blank=True, null=True)
studspaddr = models.CharField(max_length=100, blank=True, null=True)
studfullname = models.CharField(max_length=100, blank=True, null=True)
studfullname2 = models.CharField(max_length=100, blank=True, null=True)
date_admitted = models.DateField(blank=True, null=True)
studcontactno = models.CharField(max_length=20, blank=True, null=True)
payment_sy = models.CharField(max_length=9, blank=True, null=True)
payment_sem = models.CharField(max_length=1, blank=True, null=True)
basis_of_admission = models.CharField(max_length=100, blank=True, null=True)
graduated_primary = models.CharField(max_length=40, blank=True, null=True)
graduated_primary_year = models.IntegerField(blank=True, null=True)
graduated_intermediate = models.CharField(max_length=40, blank=True, null=True)
graduated_intermediate_year = models.IntegerField(blank=True, null=True)
graduated_highschool = models.CharField(max_length=40, blank=True, null=True)
graduated_highschool_year = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'student'