Получение данных из базы данных sqlite путем вызова ее из Django с помощью HTML-форм
У меня есть HTML-форма :
<form action = "" method = "get">
<label for="movie_title">Filmo pavadinimas: </label>
<input id="movie_title" type="text" name="movie_title">
<input type="submit" value="OK">
</form>
Я хочу ввести название фильма и получить всех актеров, которые снимались в этом фильме, но я не знаю, как получить этот результат, даже после прочтения документации. Данные БД:
Модель для этой таблицы:
class Filmlist(models.Model):
film_id = models.AutoField(primary_key=True)
title = models.CharField(max_length=250)
description = models.TextField(blank=True, null=True) # This field type is a guess.
category = models.CharField(max_length=250)
price = models.DecimalField(max_digits=10, decimal_places=5) # max_digits and decimal_places have been guessed, as this database handles decimal fields as float
length = models.SmallIntegerField(blank=True, null=True)
rating = models.CharField(blank=True, null=True, max_length=250)
name = models.CharField(max_length=250)
class Meta:
managed = False
db_table = 'film_list'
просматривает файл:
from django.shortcuts import render
from django.http import HttpResponse
from django.template import context, loader
import sqlite3
from web.models import Filmlist
# Create your views here.
def aktoriai(request):
print(request.GET)
return render(request, "aktoriai.html")
В заключение, я должен ввести название фильма и получить всех актеров, показанных в строке актеров. Возможно ли это сделать с помощью Django и HTML?
EDIT Я пропустил часть о печати актеров в каждом фильме, которая в этом ответе не рассматривается. Но в вопросе нет указания на то, как они связаны, поэтому я не знаю, как это включить. Поэтому я оставляю ответ как есть, на случай, если ОП найдет его полезным, но я понимаю, что он неполный.
У меня нет установленного проекта django, поэтому это может потребовать небольшой доработки, и у нас нет вашего html-шаблона, но вот основы того, что я думаю, вы могли бы сделать.
from django.shortcuts import render
from django.http import HttpResponse
from django.template import context, loader
import sqlite3
from web.models import Filmlist
# Create your views here.
def aktoriai(request):
print(request.GET)
objects = Filmlist.objects.filter(title=request.GET['movie_title'])
return render(request, "aktoriai.html", context={'objects': objects})
Затем в aktoriai.html
вы перейдете в цикл objects
для создания таблицы.