我正在尝试按开始日期筛选我的搜索结果。但是,开始日期存储为ForeignKey对象的字段。
模型
class Observation(models.Model):
taxon_node = models.ForeignKey(TaxonNode)
sample = models.ForeignKey(Sample)
remarks = models.TextField(blank=True)
class Sample(models.Model):
name = models.CharField(max_length=255)
timespan_begin = models.DateTimeField()SearchIndex
class ObservationIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
taxon_node = indexes.CharField(model_attr='taxon_node')
sample_timespan_begin = indexes.CharField(model_attr='sample__timespan_begin')表格
class ObservationSearchForm(SearchForm):
start_date = forms.DateTimeField(required=False)
def search(self):
sqs = super(ObservationSearchForm, self).search()
if not self.is_valid():
return self.no_query_found()
if self.cleaned_data['start_date']:
sqs = sqs.filter(sample_timespan_begin__gte=self.cleaned_data['start_date'])
return sqs索引
{{ object.taxon_node }}
{{ object.sample.timespan_begin }}
{{ object.remarks }}我不知道问题出在哪里。应用过滤器后,sqs不会发生变化。是我的observation_text有问题还是sqs.filter()无效?
发布于 2013-07-02 20:16:12
固定版本的sqs =
sqs = SearchQuerySet().filter(sample_timespan_begin__gte=self.cleaned_data['start_date'])https://stackoverflow.com/questions/17165702
复制相似问题