Tag: django queryset

计算在Django中按datelogging的logging数

我有一个类似于以下的模型: class Review(models.Model): venue = models.ForeignKey(Venue, db_index=True) review = models.TextField() datetime_created = models.DateTimeField(default=datetime.now) 我想查询数据库以获得按天分组的场所的评论总数。 MySQL查询将是: SELECT DATE(datetime_created), count(id) FROM REVIEW WHERE venue_id = 2 GROUP BY DATE(datetime_created); 什么是在Django中完成这个最好的方法? 我可以使用 Review.objects.filter(venue__pk=2) 并在视图中parsing结果,但是这对我来说并不合适。

django – 将列表转换回查询集

我有一些我想根据计算值sorting的logging。 在这里得到答案…像这样: sorted(Profile.objects.all(), key=lambda p: p.reputation) 在一个像这样的configuration文件类: class Profile(models.Model): … @property def reputation(self): … 不幸的是,通用视图期望一个查询集对象,并且如果我给它一个列表就会抛出一个错误。 有没有办法做到这一点,返回一个查询集 要么… 我可以以某种方式将列表转换为查询集吗? 在django文档中找不到类似的东西。 我希望不要使数据非规范化,但是我想如果必须的话。 更新/回答: 看起来回到查询集的唯一方法是如果你可以把你所有的逻辑到sql查询。 当这是不可能的,(我认为)你需要非规范化的数据

多对多的列表显示django

class PurchaseOrder(models.Model): product = models.ManyToManyField('Product') vendor = models.ForeignKey('VendorProfile') dollar_amount = models.FloatField(verbose_name='Price') class Product(models.Model): products = models.CharField(max_length=256) def __unicode__(self): return self.products 我有这个代码。 不幸的是,错误来自admin.py与“ManyToManyField” class PurchaseOrderAdmin(admin.ModelAdmin): fields = ['product', 'dollar_amount'] list_display = ('product', 'vendor') 错误说“'PurchaseOrderAdmin.list_display [0]','product'是不支持的ManyToManyField。 但是,当我从“list_display”中取出“product”时会进行编译。 那么如何在list_display中显示“product”而不会出错? 编辑:也许一个更好的问题是如何显示list_display中的ManyToManyField?

Django筛选ManyToMany计数模型?

假设我在models.py中有这样的东西: class Hipster(models.Model): name = CharField(max_length=50) class Party(models.Model): organiser = models.ForeignKey() participants = models.ManyToManyField(Profile, related_name="participants") 现在在我的views.py我想做一个查询,将获取一个派对超过0参与者的用户。 这样的事情可能是: user = Hipster.get(pk=1) hip_parties = Party.objects.filter(organiser=user, len(participants) > 0) 做这件事的最好方法是什么?

在Django中selectDISTINCT个别列?

我很好奇,如果有什么办法在Django做一个查询不是“ SELECT * FROM… ”下面。 我试图做一个“ SELECT DISTINCT columnName FROM … ”。 具体来说,我有一个模型,看起来像: class ProductOrder(models.Model): Product = models.CharField(max_length=20, promary_key=True) Category = models.CharField(max_length=30) Rank = models.IntegerField() Rank是Category的排名。 我希望能够遍历所有类别在该类别中的每个等级上进行一些操作。 我想首先获取系统中所有类别的列表,然后查询该类别中的所有产品并重复,直到处理完每个类别。 我宁愿避免原始的SQL,但如果我必须去那里,那会很好。 尽pipe我从来没有在Django / Python中编写原始SQL。

Django,从模型方法查询过滤

我有这些模型: def Foo(Models.model): size = models.IntegerField() # other fields def is_active(self): if check_condition: return True else: return False def Bar(Models.model): foo = models.ForeignKey("Foo") # other fields 现在我想查询具有活动Foo的酒吧,例如: Bar.objects.filter(foo.is_active()) 我收到错误,如 SyntaxError at / ('non-keyword arg after keyword arg' 我怎样才能做到这一点?

Django的注释和聚合方法之间的区别?

Django的QuerySet有两种方法, annotate和aggregate 。 该文件说: 与aggregate()不同,annotate()不是一个terminal子句。 annotate()子句的输出是一个QuerySet。 他们之间有没有其他区别? 如果不是,那么为什么aggregate存在?

获取查询集中的最后一条logging

如何检索某个查询集中的最后一条logging?

从表格字段中select不同的值

我正在努力让自己的头靠近Django的ORM。 我想要做的是获得我的桌子上一个字段内的不同值的列表….相当于下列之一: SELECT DISTINCT myfieldname FROM mytable (或者可选地) SELECT myfieldname FROM mytable GROUP BY myfieldname 我至less喜欢用Django的方式,然后诉诸原始的SQL。 例如,用一个表格: 身份证,街道,城市 1,赫尔大街 2,其他街,赫尔 3,Bibble路,莱斯特 4,另一种方式,莱斯特 5,高街,Londidium 我想得到: 赫尔,莱斯特,Londidium。

django – 在manytomany上的查询filter是空的

在Django中,有一种方法可以在多个空字段中进行过滤或为空。 class TestModel(models.Model): name = models.CharField(_('set name'), max_length=200) manytomany = models.ManyToManyField('AnotherModel', blank=True, null=True) print TestModel.objects.filter(manytomany__is_null=True)