Как сохранить пользовательский ввод в переменной в django python

Итак, я хочу получить данные, введенные пользователем, и сравнить их с данными, имеющимися в базе данных sqlite3, и если они совпадают, я хочу вывести всю строку, используя django orm.

form.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title> Assignment 3</title>
</head>
<body>
<h1> Please enter the product barcode in the text box below: </h1>
<form action="search">
    BARCODE: <input type="text" name="barcode">
    <br>
    <br>
    <input type="submit">
</form>
</body>
</html>

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('search', views.search, name='search'),
]

views.py

from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.

def index(request):
    return render(request, 'form.html')

def search(request):
    return render(request, 'result.html')

Я очень ценю ваше время и помощь, спасибо!

Я думаю, что добавление логики в функцию поиска для сравнения должно работать, но я очень новичок в django и не знаю, как начать...

html

<form action="search" method="post">
    BARCODE: <input type="text" name="barcode">
    <br>
    <br>
    <input type="submit">
</form>

В view.py вы можете получить искомый ввод следующим образом и фильтровать.

def search(request):
    search_input = request.POST['barcode']
    data = ModelName.objects.filter(fieldname__icontains=search_input)
    return render(request, 'result.html', {"data":data})
Вернуться на верх