我有个这样的模特:
class Worker(models.Model):
city = models.CharField(max_length=50)
和以下过滤器:
class CityFilter(django_filters.AllValuesFilter):
@property
def field(self):
f = super(WorkerFilter, self).field
f.choices = [('', '--------')] + [(a.pk, a.city) for a in
我想在数据库驱动的应用程序中使用django,并且我想知道django模型是否允许我使用复杂的查询来获取数据。
例如,我有一个数据库中的这个表:
我想从这个查询中提取数据。
SELECT name
FROM movies
WHERE year between 1995 AND 2001
AND rank between 6 and 9;
我怎么才能和Django一起做呢?
我有一个用django实现的小应用程序,我遇到了一个小小的挑战。我试图通过一个特定的属性来限制我的应用程序中的关系的查询集。现在的问题是,在用户登录到应用程序之前,属性的确切值是未知的。例如,限制用户的特定公司的一组评论,该公司仅在用户登录时确定。我不知道如何在django视图之外找到我当前的会话。任何帮助都是非常感谢的。谢谢
下面是我的应用程序中的一个模型示例
class Tax(commons.models.EntityBase):
name = models.CharField(blank=False, max_length=150)
percentage_value =
在创建自定义查询集时,是否可以考虑到MyModelViewSet的filter_backends?
class MyModelViewSet(viewsets.ModelViewSet):
filter_backends = (CustomFilter, )
serializer_class = MySerializer
def get_queryset(self):
# It should not return all objects, but only results from `CustomFilter`
queryset = L
我使用django-过滤器和django-导入-导出。我可以构建一个HTML表并使用django-filter过滤它,但是我希望用户能够导出经过过滤的表,而不是整个表。(也就是说,这不是通过管理特性实现的。)
我怀疑问题是我对列表本身有一个视图,但导出在另一个视图中,我似乎无法将过滤的查询集传递给导出视图,也无法知道如何在同一个视图上进行导出和筛选。他们都是收到请求的。我觉得我错过了一些非常基本的东西。
在我的应用程序/views.py:
from django.http import HttpResponse
from django.shortcuts import render
from
有没有办法对Django模型进行全局过滤?我们需要在一个地方设置一个过滤器,这样它就可以应用于Django ORM生成的所有查询,包括相关的对象、查找等。
class A(Model):
n = IntegerField()
class B(Model):
a = ForeignKey(A)
我们希望在A上设置一个全局过滤器id__gte=10 (为了简单起见,它是静态的)。然后,在进行相关查询时也必须自动应用过滤器,例如
B.objects.filter(a__n=123) # this code cannot be modified
应该以某种方式神奇地扩展到等同于
B
我在Django得到了两个通过ForeignKey相关的模型。(我使用的是Django 1.3)
Class Person(models.Model):
# some fields here like name, gender, etc...
Class Course(models.Model):
# some fields here
contact = models.ForeignKey(Person, blank=True, null=True)
在管理员更改列表视图中的课程,我希望能够过滤课程的ForeignKey联系人。在admin.py中,我得到了:
cla
考虑以下情况:
class MyModelManager(models.Manager):
def my_filter(self):
return [some code here].filter(field_A__gt=3)
class MyModel(models.Model):
# some fields
objects = MyModelManager()
# The way I'd like to use it:
qs = MyModel.objects.filter(field_B__lt=1)
# some code
qs = qs.
相对来说,我对Django和Python比较陌生,但我还没有完全弄明白这一点。
实际上,我想使用筛选器来查询数据库,以满足大量用户的需要。然后我想对这一部分的用户进行大量的查询。因此,我认为这将是最有效的,首先对我的较大过滤器参数进行查询,然后对该集合进行单独的筛选查询。在代码中,如下所示
#Get the big groups of users, like all people with brown hair.
group_of_users = Data.objects.filter(......)
#Now get all the people with brown hair and