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>
...
任何幫助將不勝感激!
再次感謝
史蒂夫
嘿感謝您的快速響應。隨着代碼的進入,我現在得到'TypeError at/search/ __init __()至少需要2個參數(1給定)'錯誤。它指向:view.py的form = SearchProjectForm()。 – TheLifeOfSteve 2010-12-16 20:17:14
您需要將項目傳遞給構造函數中的SearchProjectForm。我的答案的第一個代碼行:-)在表單的第二個實例中:)所以'form = SearchProjectForm(project)'。 – gruszczy 2010-12-16 20:20:45
:)我試過並在項目中不斷收到項目名稱錯誤 – TheLifeOfSteve 2010-12-16 20:21:59