Я создаю сайт, где пользователи могут искать рецепты для ингредиентов, но я могу искать только, набрав 1 ингредиент, когда я набираю более одного, поиск возвращается пустым. Правильный поиск будет для пользователя, чтобы вставить несколько ингредиентов и вернуть рецепты, которые содержат эти ингредиенты. Я не могу найти, что не так: (
Вот мои модели.py
class Fotos(models.Model):
id = models.AutoField(primary_key=True)
linkfoto = models.ImageField()
nomes = models.ForeignKey('Nomes', models.DO_NOTHING, blank=True, null=True)
class Meta:
managed = False
db_table = 'fotos'
class Ingredientes(models.Model):
id = models.AutoField(primary_key=True)
ingrediente = models.TextField()
nomes = models.ForeignKey('Nomes', models.DO_NOTHING, blank=True, null=True)
class Meta:
managed = False
db_table = 'ingredientes'
class Nomes(models.Model):
id = models.AutoField(primary_key=True) # AutoField?
nome = models.TextField()
class Meta:
managed = False
db_table = 'nomes'
views.py
from django.shortcuts import render
from .models import Ingredientes, Nomes, Fotos
def post_list(request):
termo_busca = request.GET.get('pesquisa')
if termo_busca:
a = Ingredientes.objects.all().filter(ingrediente__contains=termo_busca)
# a = a.exclude(ingrediente__icontains=termo_busca!=termo_busca)
busca = [p.nomes_id for p in a]
lista = []
for i in busca:
nome = Nomes.objects.get(id=i)
ingredientes = Ingredientes.objects.filter(nomes_id__in=[i])
foto = Fotos.objects.get(id=i)
lista.append([nome, ingredientes, foto])
else:
a = Nomes.objects.all()[:10]
cont = len(a)
lista = []
for i in range(1, cont):
nome = Nomes.objects.get(id=i)
ingredientes = Ingredientes.objects.filter(nomes_id__in=[i])
foto = Fotos.objects.get(id=i)
lista.append([nome, ingredientes, foto])
return render(request, 'aplicacao/post_list.html', {'lista': lista})