标签: django-queryset

在django查询中等效的SQL"LIKE"

django中这个SQL语句的等价物是什么?

SELECT * FROM table_name WHERE string LIKE pattern;
Run Code Online (Sandbox Code Playgroud)

我如何在django中实现这个?我试过了

result = table.objects.filter( pattern in string )
Run Code Online (Sandbox Code Playgroud)

但那没用.我该如何实现?

python sql django django-models django-queryset

88
推荐指数
4
解决办法
7万
查看次数

Django - 过滤外键属性

我正在尝试根据外键的特定字段的值过滤Django中的表.

例如,我有两个模型 -

class Asset(models.Model):
    name = models.TextField(max_length=150)
    project = models.ForeignKey('Project')

class Project(models.Model):
    name = models.TextField(max_length=150)
Run Code Online (Sandbox Code Playgroud)

我想根据相关项目的名称过滤我的资产清单.

目前我正在执行两个查询:

project_list = Project.objects.filter(name__contains="Foo")
asset_list = Asset.objects.filter(desc__contains=filter,
                                  project__in=project_list).order_by('desc')
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法在主查询中指定这种过滤方式?

django django-models django-queryset

86
推荐指数
2
解决办法
8万
查看次数

在django中选择DISTINCT个别列?

我很好奇是否有任何方法可以在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()
Run Code Online (Sandbox Code Playgroud)

其中Rank是一个排名Category.我希望能够遍历所有类别,对该类别中的每个等级进行一些操作.

我想首先获得系统中所有类别的列表,然后查询该类别中的所有产品并重复,直到处理完每个类别.

我宁愿避免使用原始SQL,但如果我必须去那里,那就没事了.虽然我以前从来没有在Django/Python中编写原始SQL.

django distinct django-models django-orm django-queryset

80
推荐指数
4
解决办法
11万
查看次数

django - manytomany上的查询过滤器为空

在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)
Run Code Online (Sandbox Code Playgroud)

django django-queryset

79
推荐指数
2
解决办法
2万
查看次数

如何在Django中进行SELECT COUNT(*)GROUP BY和ORDER BY?

我正在使用事务模型来跟踪通过系统的所有事件

class Transaction(models.Model):
    actor = models.ForeignKey(User, related_name="actor")
    acted = models.ForeignKey(User, related_name="acted", null=True, blank=True)
    action_id = models.IntegerField() 
    ......
Run Code Online (Sandbox Code Playgroud)

如何获得系统中的前5名演员?

在sql中它基本上是

SELECT actor, COUNT(*) as total 
FROM Transaction 
GROUP BY actor 
ORDER BY total DESC
Run Code Online (Sandbox Code Playgroud)

django django-queryset

77
推荐指数
2
解决办法
6万
查看次数

获取查询集中的最后一条记录

如何检索特定查询集中的最后一条记录?

django django-queryset

75
推荐指数
7
解决办法
7万
查看次数

django - 用过滤器获取最新记录

我试图获得最新的django模型对象,但似乎无法成功.

也不

obj = Model.objects.filter(testfield=12).latest()
Run Code Online (Sandbox Code Playgroud)

也不

obj = Model.objects.latest().filter(testfield=12)
Run Code Online (Sandbox Code Playgroud)

工作中.

请帮忙.

python django django-models django-queryset

73
推荐指数
5
解决办法
8万
查看次数

Django查询从不同类别获取最新对象

我有两个型号AB.所有B对象都有一个对象的外键A.给定一组A对象,无论如何都要使用ORM来获取B包含为每个A对象创建的最新对象的一组对象

这是一个简化的例子:

class Bakery(models.Model):
    town = models.CharField(max_length=255)

class Cake(models.Model):
    bakery = models.ForeignKey(Bakery, on_delete=models.CASCADE)
    baked_at = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找一个可以返回美国Anytown每家面包店最新蛋糕的查询.

python django django-queryset greatest-n-per-group

72
推荐指数
4
解决办法
2万
查看次数

如何创建一个Django查询集过滤器,比较同一模型中的两个日期字段

试图在我的Solr索引中查询活动记录陈旧的查询.我想检查Activity.updated数据库中的日期是否大于Activity.added_toSolr_date同一记录的日期.

stale_activities_queryset = Activity.objects.filter(updated__gte = self.added_toSolr_date) 
Run Code Online (Sandbox Code Playgroud)

模型

class Activity(models.Model):
    # Last time entry / metric was updated in the Activity model database
    updated =  models.DateTimeField( verbose_name="CRUD date")
    # When it was added to Solr Index Date
    added_toSolr_date = models.DateTimeField(blank=True, null=True, verbose_name="Added to Solr Index Date")
Run Code Online (Sandbox Code Playgroud)

我引用了Django Query文档:https: //docs.djangoproject.com/en/1.4/ref/models/querysets/ 以及样本的单元测试:https: //github.com/django/django/blob/master/tests/ modeltests/or_lookups/tests.py

还在Stackoverflow上搜索了这里.所有示例都使用输入日期,而不是比较同一模型中的两个日期字段.

django django-queryset

68
推荐指数
1
解决办法
3万
查看次数

列表中的多对多显示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
Run Code Online (Sandbox Code Playgroud)

我有那个代码.不幸的是,错误来自admin.py中ManyToManyField

class PurchaseOrderAdmin(admin.ModelAdmin):
    fields = ['product', 'dollar_amount']
    list_display = ('product', 'vendor')
Run Code Online (Sandbox Code Playgroud)

错误说:

'PurchaseOrderAdmin.list_display [0]','product'是不受支持的ManyToManyField.

然而,当我把它编译'product'出来的list_display.那么如何'product'list_display不给出错误的情况下显示呢?

编辑:也许一个更好的问题是你如何显示ManyToManyFieldlist_display

python django admin django-admin django-queryset

68
推荐指数
3
解决办法
4万
查看次数