【问题标题】:Getting cannot resolve keyword when using django filter使用 django 过滤器时无法解析关键字
【发布时间】:2020-10-06 15:32:56
【问题描述】:

当我按日期过滤 csv 输出时出现此错误。我还想问一下如何将上个月或过去 6 个月的数据输出到 csv?因为我只有current_month & current_year 谢谢!

Cannot resolve keyword 'created_at' into field. Choices are: amount, id, level, report, timestamp

@models.py

class Rainfall(models.Model):
    level = models.CharField(max_length=10, blank=True, default='')
    amount = models.FloatField()
    timestamp = models.DateTimeField(auto_now_add=True)

@views.py

def export_by_month(request):
    response = HttpResponse(content_type='text/csv')
    current_month = datetime.now()

    writer = csv.writer(response)
    writer.writerow(['Level', 'Amount', 'Timestamp'])

    for i in Rainfall.objects.filter(created_at__month=current_month):
        writer.writerow(i)

    response['Content-Disposition'] = 'attachment; filename="rainfall.csv"'


def export_by_year(request):
    current_year = datetime.now().year
    return Rainfall.objects.filter(created_at__year=current_year)

【问题讨论】:

标签: django django-filter


【解决方案1】:

您的Rainfall 模型没有created_at 属性。也许这就是你想要的:

Rainfall.objects.filter(timestamp__month=current_month)

【讨论】:

  • 您好!谢谢它的作品! :) 但是当我尝试执行export_by_year 时,我收到too many values to unpack (expected 2) 错误。你觉得我在这里缺少什么?
  • 重复你为export_by_month所做的 - 你的视图函数需要返回一个响应对象,而不是一个查询集
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
相关资源
最近更新 更多