使用django query __isnull,字段名包含空格或连字符



基本问题是我不能使用key-value参数

field_variable_name__isnull=True/False

field_variable_name=None

field_variable_name包含空格或连字符(例如:'这是我的字段变量名',或'这是另一个')。

我查找了如何过滤模型。object-list with 'varname__isnull=True',但没有找到包含空格字符的名称的解决方案:

在我的views.py我有以下功能:

def currenttodos(request):
todos = Todo.objects.filter(user=request.user, time_completed__isnull=True)
return render(request, 'todo/currenttodos.html', {'todos': todos})

models.py-文件中的Todo模型包含以下字段:

time_completed = models.DateTimeField(null=True, blank=True)

这种方式工作,但实际上我想以不同的方式调用time_completed-字段,例如"完成时间">使用name-参数:

time_completed = models.DateTimeField(null=True, blank=True, name="Completion time")
现在,问题是我不能使用__isnull-参数,因为名称包含空间.以下所有示例都不起作用:
todos = Todo.objects.filter(user=request.user, Completion time__isnull=True)
todos = Todo.objects.filter(user=request.user, "Completion time"__isnull=True)
todos = Todo.objects.filter(user=request.user, "Completion time"=None)
etc.

如何使包含空格或连字符的名称工作?

这是一个类似帖子的链接:筛选查询集中的空名称或NULL名称

基本上,这个用户希望能够排除null或空白的实例。正如您所看到的,有几个选项可以做到这一点。我喜欢的方法是将过滤条件链接在一起,因为对我来说,这更直接,更容易理解,但是你有一些选择。

您可以删除name参数。这是不必要的。django会创建一个标签为time_completed的字段,但你只需要像这样过滤

todos = Todo.objects.filter(user=request.user, time_completed__isnull=True)

相关内容

  • 没有找到相关文章