这是我的模特
class News(models.Model):
title = models.CharField(max_length=500)
published_date = models.CharField(max_length=100)
description = models.TextField()
details = models.TextField()
status = models.BooleanField(default=False)
crawler = models.ForeignKey('Crawler')
category = models.ForeignKey('Category')
新闻的观点是
class DisplayNewsView(TemplateView):
template_name = "news_listing.html"
#paginate_by = 10
def get_context_data(self, **kwargs):
context = super(DisplayNewsView, self).get_context_data(**kwargs)
categories_list = Category.objects.all().filter(created_by=self.request.user)
context['news_list'] = []
for categories in categories_list:
print(categories)
for crawler in categories.crawlers.get_queryset():
#print(categories)
print(crawler)
crawler_list = News.objects.filter(
Q(category=categories),
Q(crawler=crawler) | Q(crawler=crawler))
#print(crawler_list)
context['news_list'].append(crawler_list)
return context
我已在模板中显示新闻。 我想根据时间搜索新闻。我的意思是" date"到"约会"根据新闻模型中公布的日期。
我的分类模型是
class Category(models.Model):
category = models.CharField(max_length=50)
identifier = models.CharField(max_length=50, unique=True)
level_1_words = models.TextField()
level_2_words = models.TextField()
created_by = models.ForeignKey(User,null=True)
crawlers = models.ManyToManyField('Crawler',related_name='crawler_name')
class Meta:
verbose_name_plural = "Categories"
def __unicode__(self): # Python 3: def __str__(self):
return self.category
任何人都可以根据发布日期帮助搜索新闻。 我希望它能像来自" date"到"约会"提交。 当用户点击提交按钮时,我希望过滤新闻..
如果有人告诉我如何在csv中下载搜索到的新闻,那将会很有帮助。提前谢谢
答案 0 :(得分:1)
首先需要将日期字段设为DateField而不是CharField
这是在django
中查询日期范围的方法News.objects.filter(pub_date__lte=datetime(2014, 5, 30), pub_date__gte=datetime(2014, 1, 30))
另一个例子是
News.objects.filter(pub_date__lte=datetime(2014, 5, 30), pub_date__gte=datetime(2014, 1, 30)).exclude(datetime.date.today())
有关django查询的更多信息,请查看文档@ Making queries in Django