如何在django中使用过滤器

use*_*724 1 django django-models django-orm django-queryset

class Status(models.Model):someid = models.IntegerField()value = models.IntegerField()status_msg = models.CharField(max_length = 2000)

so my database look like:
 20     1234567890   'some mdg'
 20     4597434534   'some msg2'
 20     3453945934   'sdfgsdf'
 10     4503485344   'ddfgg'
Run Code Online (Sandbox Code Playgroud)

所以我必须获取包含某些值之间的someid的值.所以说吧

  val1 = '1234567890'
    val2  = '4414544544'
Run Code Online (Sandbox Code Playgroud)

所以我的最终结果应该是包含id = 20的2个条目的列表如何实现这个.

我试过用

list = Status.objects.filter(someid = 20, value < val2, value > val1) 
Run Code Online (Sandbox Code Playgroud)

哪个错了?如何解决这个问题.

谢谢.

Imr*_*ran 10

Django Query API不使用传统的比较运算符.它使用(field)__(operatorname)=(value)样式语法.

您的查询将是:

list = Status.objects.filter(someid=20, value__lt=val2, value__gt=val1)
Run Code Online (Sandbox Code Playgroud)

请参阅Django Docs on Making Queries