python - Django: Search Engine -


i trying make search engine of sorts in django, user enters query via form , gets output if query exists in database. here's code:

urls.py:

from django.conf.urls import url django.contrib import admin  search import views  urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^', views.form), url(r'^search/', views.data,name='search'),  ] 

models.py:

from __future__ import unicode_literals  abc import abcmeta  django.db import models   # create models here.   class album(models.model):     artist = models.charfield(max_length=100)     album_title = models.charfield(max_length=100)     genre = models.charfield(max_length=100)     album_logo = models.charfield(max_length=100)      def __str__(self):         return self.album_title + "-" + self.artist 

views.py:

from django.http import httpresponse,http404 models import album forms import formquery django.shortcuts import render django.template import loader . import *  def data(request):    if request.method=='post':         form=formquery(request.post)         data=form.cleaned_data         value=data['query']         if form.is_valid():             try:                 album1 = album.objects.get(artist__contains=value)                  return render(request,'search/form.html',{'album':album1})             except:                 raise http404("does not exist.")     else:         return render(request,'search/form.html') 

forms.py:

from django import forms  class formquery(forms.form):     query=forms.charfield() 

form.html:

<form action="{% url 'search' %}" method="post">{% csrf_token %}    <fieldset>      enter album:<br>     <input type="text" name="query" ><br>      <input type="submit" value="submit search >>">   </fieldset>  </form>     {% if album %}         <h1>{{ album }}</h1>     {% endif %} 

however, when type query, see url change ,but page remains same , result(album name) not displayed. new django.

form.is_valid() must called before accessing cleaned_data.


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -