2
我是新来的django &干草堆。我遵循haystack网站提供的示例教程,并想出如何执行基本搜索。我能够获取输出值,但页面显示不正确。 Haystack默认格式为searchForm
,但在我的情况下,默认格式为ModelSearchForm
。我不知道为什么以及如何改变它。更改django-haystack的默认视图
这是我的search.html页面中的表单。
<form method="get" action=".">
<table>
{{ form.as_table }}
<tr>
<td> </td>
<td>
<input type="submit" value="Search" class="btn btn-default">
</td>
</tr>
</table>
</form>
在我的搜索页面,干草堆总是显示我一个默认窗体。它有预定义的标签,它总是用复选框向我显示模型名称。我无法弄清楚它显示这些值的位置以及如何修改它。
我search_index.py文件
import datetime
from haystack import indexes
from signups.models import SignUp
class SignUpIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
first_name = indexes.CharField(model_attr='first_name')
last_name = indexes.CharField(model_attr='last_name')
email = indexes.CharField(model_attr='email')
def get_model(self):
return SignUp
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
我model.py文件
from django.db import models
from django.utils.encoding import smart_unicode
class SignUp(models.Model):
first_name = models.CharField(max_length = 120,null = True, blank= True)
last_name = models.CharField(max_length = 120,null = True, blank= True)
email = models.EmailField()
timestamp = models.DateTimeField(auto_now_add = True, auto_now = False)
update = models.DateTimeField(auto_now_add = False, auto_now = True)
def __unicode__(self):
return smart_unicode(self.email)
我想补充一个形象,更有效,但无法沟通,因为较少的声誉。 :(