Om jag förstår det rätt vill du ta lite input från användaren, fråga databasen och visa användarresultaten baserat på inmatningen. För detta kan du skapa ett enkelt djangoformulär som tar indata. Sedan kan du skicka parametern till en vy i GET
begära och fråga databasen efter nyckelordet.
REDIGERA :Jag har redigerat koden. Det borde fungera nu.
views.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>
Se också till att du placerar dina mallar i en separat mapp som heter templates
och lägg till detta i din settings.py
:
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), '../templates').replace('\\','/'),
)