Si je comprends bien, vous voulez prendre une entrée de l'utilisateur, interroger la base de données et afficher les résultats de l'utilisateur en fonction de l'entrée. Pour cela, vous pouvez créer un simple formulaire django qui prendra l'entrée. Ensuite, vous pouvez passer le paramètre à une vue dans GET
demander et interroger la base de données pour le mot-clé.
MODIFIER :J'ai modifié le code. Cela devrait fonctionner maintenant.
vues.py
from django.shortcuts import render
from django.shortcuts import HttpResponse
from .models import Person
from django.core.exceptions import *
def index(request):
return render(request, 'form.html')
def search(request):
if request.method == 'POST':
search_id = request.POST.get('textfield', None)
try:
user = Person.objects.get(name = search_id)
#do something with user
html = ("<H1>%s</H1>", user)
return HttpResponse(html)
except Person.DoesNotExist:
return HttpResponse("no such user")
else:
return render(request, 'form.html')
urls.py
from django.conf.urls import patterns, include, url
from People.views import *
urlpatterns = patterns('',
url(r'^search/', search),
url(r'^index/', index)
)
form.html
<form method="POST" action="/search">
{% csrf_token %}
<input type="text" name="textfield">
<button type="submit">Upload text</button>
</form>
Assurez-vous également que vous placez vos modèles dans un dossier séparé nommé templates
et ajoutez ceci dans votre settings.py
:
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), '../templates').replace('\\','/'),
)