小编Pat*_*Pat的帖子


Django:在Queryset上使用Annotate,Count和Distinct

这是我的数据库查询:

results = Attachments.objects.filter(currency='current').annotate(num_attachments=Count('article_id')).order_by("num_attachments").distinct('article_id')
Run Code Online (Sandbox Code Playgroud)

查询细分如下(据我所知):

  • 第一个过滤器是"当前"的当前附件.
  • 然后使用某个'article_id'计算这些附件的数量.
  • 然后使用附件编号注释每个附件,其中包含具有共同的article_id的编号.
  • 然后根据附件数量排名.
  • 然后,使用distinct减去列表,以便每个article_id值都有一个Attachment对象.

我在PostgreSQL上运行它,所以根据Django 文档,我可以根据字段运行distinct().

执行查询时没有错误,但是当我尝试迭代甚至打印结果时,Django调试会抛出以下错误:

NotImplementedError at /function/
annotate() + distinct(fields) not implemented.
Run Code Online (Sandbox Code Playgroud)

交互式提示中更详细的回溯是:

  File "<console>", line 1, in <module>
  File "/Users/Pat/.virtualenvs/envsp/lib/python2.7/site-packages/django/db/models/query.py", line 118, in _result_iter
    self._fill_cache()
  File "/Users/Pat/.virtualenvs/envsp/lib/python2.7/site-packages/django/db/models/query.py", line 875, in _fill_cache
    self._result_cache.append(self._iter.next())
  File "/Users/Pat/.virtualenvs/envsp/lib/python2.7/site-packages/django/db/models/query.py", line 291, in iterator
    for row in compiler.results_iter():
  File "/Users/Pat/.virtualenvs/envsp/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 763, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/Users/Pat/.virtualenvs/envsp/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 808, in execute_sql
    sql, params = self.as_sql()
  File "/Users/Pat/.virtualenvs/envsp/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 107, in as_sql
    "annotate() …
Run Code Online (Sandbox Code Playgroud)

python django

11
推荐指数
2
解决办法
6481
查看次数

用最恐怖的方式替换第一个和最后一个字符串

我正在寻找用于替换字符串的第一个和最后一个字的最pythonic方式(在字母的基础上执行它不会因各种原因而起作用).为了演示我正在尝试做什么,这是一个例子.

a = "this is the demonstration sentence."
Run Code Online (Sandbox Code Playgroud)

我希望我的python函数的结果是:

b = "This is the demonstration Sentence."
Run Code Online (Sandbox Code Playgroud)

其中棘手的部分是字符串的前端或末端可能有空格.我需要保留这些.

这就是我的意思:

a = " this is a demonstration sentence. "
Run Code Online (Sandbox Code Playgroud)

结果需要是:

b = " This is a demonstration Sentence. "
Run Code Online (Sandbox Code Playgroud)

也会对正则表达式是否比python的内置方法更好地完成这项工作的意见感兴趣,反之亦然.

python python-2.7

6
推荐指数
1
解决办法
2551
查看次数

使用Meteor的第三方javascript包

我现在正在与Meteor合作,并且我试图通过在数字变化时添加数字转换来使其看起来更"真实".我能看到的最好的第三方软件包是http://github.hubspot.com/odometer/.

我无法让程序包在Meteor中工作以更新项目上的注释编号.

我已经尝试将javascript放入客户端/兼容性中,根据流星文档:http://docs.meteor.com/#structuringyourapp,但没有快乐.

另一个问题可能是包使用CSS转换,这意味着围绕正在更新的数字重新呈现模板将阻止转换发生.为了尝试解决这个问题,我使用{{#isolate}}围绕数字,但这也不起作用.

有没有人对流星中的其他东西有什么其他想法?

meteor

6
推荐指数
1
解决办法
268
查看次数

显示Postgres服务器日志输出终端并同时记录到日志

我正在运行Postgres 9.1(在Mac OSX上安装Homebrew),我想更密切地监控我的postgres服务器.

我的问题与日志有关.我想在终端窗格中显示日志.以下是Postgres 文档对日志的说法:

"在类Unix系统上,默认情况下,服务器的标准输出和标准错误被发送到pg_ctl的标准输出(非标准错误).然后应将pg_ctl的标准输出重定向到文件或通过管道传输到另一个进程,例如日志旋转程序如rotatelogs;否则postgres会将其输出写入控制终端(从后台)并且不会离开shell的进程组.在Windows上,默认情况下服务器的标准输出和标准错误被发送到终端.这些默认行为可以使用-l将服务器的输出附加到日志文件来更改.建议使用-l或输出重定向."

所以,当我使用以下内容运行我的postgres服务器时:

pg_ctl start -D /usr/local/var/postgres
Run Code Online (Sandbox Code Playgroud)

日志显示在终端窗口中.当我跑:

pg_ctl start -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log
Run Code Online (Sandbox Code Playgroud)

日志转到我的日志文件,不显示在终端中.

简而言之,如果有人能够在我将日志定向到文件(使用第二个命令)之后告诉我我使用了什么命令以使日志也出现在命令行中,那将是很棒的.当我正在开发(在Django中)观察SQL语句实时执行时,它会有所帮助.

postgresql

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

关于Elastic Beanstalk的Django的PostgreSQL

我正在阅读有关在Amazon的Elastic Beanstalk上使用PostgreSQL for python(Django)的相互矛盾的报道.

一些消息来源称这是不可能的:(http://www.forbes.com/sites/netapp/2012/08/20/amazon-cloud-elastic-beanstalk-paas-python/).我经历过一个虚拟应用程序设置,似乎MySQL是唯一的选择(其他不是Postgres).

然而,我发现这个地方的片段提到它是可能的 - 即使它们在细节上非常清晰.

我需要知道以下内容:

  1. 是否可以在Elastic Beanstalk上运行带有Django应用程序的PostgreSQL数据库?
  2. 如果有可能,那值得吗?
  3. 如果有可能,你会如何设置它?

python django postgresql amazon-elastic-beanstalk

5
推荐指数
2
解决办法
2309
查看次数

使用Django在Elastic Beanstalk上运行Python的Celery

我正在考虑迁移到Elastic Beanstalk(由于定价).阻塞是我不知道如何在部署到服务的python应用程序(在我的例子中是Django)上设置Celery.有没有人设法在Elastic Beanstalk上设置芹菜?如果是这样,请告诉我你是如何做到这一点以及你使用了什么工具.

python django celery amazon-elastic-beanstalk

4
推荐指数
1
解决办法
5630
查看次数