首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-haystack filter by ForeignKey->DateTimeField

Django-haystack filter by ForeignKey->DateTimeField
EN

Stack Overflow用户
提问于 2013-06-18 17:48:51
回答 1查看 689关注 0票数 1

我正在尝试按开始日期筛选我的搜索结果。但是,开始日期存储为ForeignKey对象的字段。

模型

代码语言:javascript
复制
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

代码语言:javascript
复制
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')

表格

代码语言:javascript
复制
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

索引

代码语言:javascript
复制
{{ object.taxon_node }}
{{ object.sample.timespan_begin }}
{{ object.remarks }}

我不知道问题出在哪里。应用过滤器后,sqs不会发生变化。是我的observation_text有问题还是sqs.filter()无效?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-02 20:16:12

固定版本的sqs =

代码语言:javascript
复制
sqs = SearchQuerySet().filter(sample_timespan_begin__gte=self.cleaned_data['start_date'])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17165702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档