Проблема Django с request.get в postgresql

Застряв в этой проблеме, у меня есть таблица с датой, категорией и суммой, и я пытаюсь сделать запрос, который может выбирать между датами для получения записей, но когда я выбираю даты, он кричит «столбец» 2020-12 -12" не существует"

просмотры.py

def outgoings_history(request):
    if request.method == "POST":
        date_from= request.POST.get('date_from')
        date_to= request.POST.get('date_to')
        search_result = Outgoings.objects.filter(user=request.user).order_by('-date')\
            .raw('SELECT suma, kategoria, date FROM outgoings WHERE date BETWEEN "2020-12-12" AND "2020-12-12"')
        return render(request, 'outgoings_history.html', {'data': search_result})
    else:
        displaydata = Outgoings.objects.filter(user=request.user).order_by('-date')
        return render(request, 'outgoings_history.html', {'data': displaydata})

формы.py

class PickADate(forms.Form):
date_from= forms.DateField(widget=DateInput())
date_to= forms.DateField(widget=DateInput())[][1]

Дата «2020-12-12» — это всего лишь пример, и она имеет записи за этот день, но по-прежнему ничего не показывает.

Вы используете POST-запрос? Обычно для фильтрации используются GET-запросы.

Willem Van Onsem 12.12.2020 22:23
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не нужно использовать .raw для этого, вы можете использовать `.filter():

from django.contrib.auth.decorators import login_required

@login_required
def outgoings_history(request):
    search_result = Outgoings.objects.filter(
        user=request.user,
    ).order_by('-date')
    if request.method == 'POST':
        form = PickADate(request.POST)
        if form.is_valid():
            date_from = form.cleaned_data['date_from']
            date_to = form.cleaned_data['date_to']
            search_result = search_results.filter(
                date__range=(date_from, date_to)
            )
    return render(request, 'outgoings_history.html', {'data': search_result})

Примечание: Вы можете ограничить представления до представления для аутентифицированных пользователей с @login_required декоратор [Django-doc].

Спасибо за быстрый ответ. Теперь он говорит: «Представление account.views.outgoings_history не вернуло объект HttpResponse. Вместо этого он вернул None.

Hudy_edd 12.12.2020 22:49

Вероятно, это потому, что вы не return render(...) за пределами if...

Willem Van Onsem 12.12.2020 22:50

Вы имеете в виду с другим? Я не изменил его. это то же самое, что и в моем предыдущем посте

Hudy_edd 12.12.2020 23:02

@Hudy_edd: каждый путь кода должен возвращать ответ HTTP, это означает, что существует комбинация if и else, которая ничего не возвращает, следовательно, None.

Willem Van Onsem 12.12.2020 23:03

Другие вопросы по теме