Как фильтровать по месяцам и годам в Джанго - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть форма для фильтрации студентов по объединенным годам и месяцам. Этот код работает нормально, если я фильтрую по годам, но не работает, если я фильтрую по месяцам. Как я могу решить это? Данные за месяц недоступны.

models.py

class Student(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()
    phone = models.CharField(max_length=15)
    joined_date = models.DateField()

views.py

def serachstudent(request):
    q = request.GET["q"]
    if q:
        students = Student.objects.filter(Q(joined_date__year__icontains=q)|Q(joined_date__month__icontains=q))
        return render(request, "students/view_students.html", {'students': students})
    else:
        return redirect('students:view_student')

шаблон

<form action="{% url 'students:search_student' %}" class='form-inline'>
          <!--<label for="month"></label>-->
          <select name="q">
            <option disabled selected>Select Year</option>
            <option value="2018">2018</option>
             <option value="2017">2017</option>
            <option value="2019">2019</option>
          </select>
          <!--<label for="month"></label>-->
          <select name="q">
            <option disabled selected>Select month</option>
            <option value="01">January</option>
            <option value="02">February</option>
             <option value="03">March</option>
            <option value="04">April</option>
            <option value="05">May</option>
            <option value="06">June</option>
             <option value="07">July</option>
            <option value="08">August</option>
             <option value="09">September</option>
            <option value="10">Octbor</option>
             <option value="11">November</option>
            <option value="12">Decembery</option>

          </select>

     &nbsp; &nbsp;
                    <div>
                        <button type="submit" >Find Students</button>
                    </div>

      </form>

1 Ответ

1 голос
/ 24 апреля 2019

Просто сделай это

students = Student.objects.filter(Q(joined_date__year=q)|Q(joined_date__month=q))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...