1
내 작은 프로젝트에서 내 검색 기능을 확장하려고합니다. 지금은 char 필드를 사용하여 검색 할 수 있지만 몇 가지 체크 박스를 추가하고 싶습니다. 일부 프로젝트는 SRED 체크 박스로 표시되었으므로 SRED 프로젝트 만 검색 할 수 있기를 원합니다.내 검색 기능 확장
다음은 현재 검색 설정입니다.
models.py
class Project(models.Model):
...
proj_name = models.CharField(max_length=255, verbose_name='Project Name')
pre_quote = models.CharField(max_length=3)
quote = models.IntegerField(max_length=10, verbose_name='Quote #', unique=True)
...
SRED = models.BooleanField()
...
Views.py
@login_required
def search(request):
if request.method == 'POST':
form = SearchProjectForm(request.POST)
if not form.is_valid():
return render_to_response('project/search.html', {'form': form}, context_instance=RequestContext(request))
else:
projects = Project.objects.filter(proj_name__icontains = form.cleaned_data["text"])
companies = Clients.objects.filter(client_name__icontains = form.cleaned_data["text"])
return render_to_response('project/search.html', {'form': form, 'projects':projects, 'companies': companies}, context_instance=RequestContext(request))
form = SearchProjectForm()
return render_to_response('project/search.html', {'form': form}, context_instance=RequestContext(request))
forms.py
class SearchProjectForm(forms.Form):
text = forms.CharField(label = "Search")
search.html에
<form method="POST" action="">
{% csrf_token %}
{{form}}
<input type="submit" value="Search"/>
</form>
<h3>Search Results</h3>
...
도움을 주시면 대단히 감사하겠습니다!
다시 한번 감사
스티브
빠른 응답을 주셔서 감사합니다. 그 코드를 넣으면, 이제/search/ 에 'TypeError'가 나타납니다. __init __()은 적어도 2 개의 인수 (주어진 1 개)를 취합니다. '오류가 발생합니다. 그것은 내 views.py의 form = SearchProjectForm()을 가리 킵니다. – TheLifeOfSteve
생성자의 SearchProjectForm에 프로젝트를 전달해야합니다. 내 대답의 첫 번째 코드 줄 :-) 너무 양식의 두 번째 인스턴스에서 :) 그래서'form = SearchProjectForm (project)'. – gruszczy
:) 나는 그것을 시도하고 프로젝트를 수행 할 때 이름 오류가 계속 발생했습니다. – TheLifeOfSteve