小编Guy*_*den的帖子

如何通过AND聚合与Django分组

我有一个相当简单的查询,我想通过ORM,但无法弄清楚..

我有三个型号:

位置(地点),属性(地点可能具有的属性)和评级(还包含分数字段的M2M'到'模型)

我想选择一些重要的属性,并能够按这些属性对我的位置进行排名 - 即所有选定属性的总得分越高=越好.

我可以使用以下SQL来获得我想要的东西:

select location_id, sum(score) 
    from locations_rating 
    where attribute_id in (1,2,3) 
    group by location_id order by sum desc;
Run Code Online (Sandbox Code Playgroud)

返回

 location_id | sum 
-------------+-----
          21 |  12
           3 |  11
Run Code Online (Sandbox Code Playgroud)

我能用ORM得到的最接近的是:

Rating.objects.filter(
    attribute__in=attributes).annotate(
    acount=Count('location')).aggregate(Sum('score'))
Run Code Online (Sandbox Code Playgroud)

哪个回报

{'score__sum': 23}
Run Code Online (Sandbox Code Playgroud)

即所有的总和,不按位置分组.

有什么方法吗?我可以手动执行SQL,但宁可通过ORM来保持一致.

谢谢

django django-aggregation

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

在django视图中设置语言

背景: 当支付服务在幕后追回付款结果时调用该视图 - 之后我需要以正确的语言发送电子邮件以确认付款等等.我可以在支付服务器的请求中获取语言代码,并希望将其与Django的i18n系统一起使用,以确定将我的电子邮件发送到哪种语言.

所以我需要在视图中设置我的django应用程序的语言.然后一次性完成我的模板渲染和电子邮件.

设置request.session['django_language'] = lang仅在我测试时影响下一个视图.

还有其他办法吗?

干杯,

家伙

django internationalization

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

在Django管理站点中显示自定义模型验证异常

我有一个预订模型,需要检查预订的项目是否可用.我想知道这个项目是否可以集中存在的逻辑,这样无论我在哪里保存实例,这个代码都会验证它是否可以保存.

目前我在我的模型类的自定义保存功能中有这个代码:

def save(self):
    if self.is_available(): # my custom check availability function
        super(MyObj, self).save()
    else:
        # this is the bit I'm stuck with..
        raise forms.ValidationError('Item already booked for those dates')
Run Code Online (Sandbox Code Playgroud)

这很好 - 如果项目不可用,则会引发错误,并且我的项目未保存.我可以从我的前端表单代码中捕获异常,但是Django管理站点呢?如何将我的异常显示为与管理站点中的任何其他验证错误一样?

django django-admin

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

节点JS工作者 - 他们需要什么?

原谅我的无知,但是来自Django/Python背景我可以看到让Celery队列在后台运行较慢进程的巨大好处,同时尽可能快地更新Web界面.

但是,由于Node异步工作,队列系统的用例是否会大大减少?

例如:

1 - 用户向网站发布内容,2 - 网站响应,然后邮寄管理员.

在Django中,您将管理邮件发送到任务,稍后执行,然后响应请求.芹菜在后台发送邮件.

在Node中,您调用邮件程序,然后回复请求.然后邮件程序发送回叫以表示DONE与否,此时用户已经在查看响应.

那么我为什么要使用Node队列呢?我猜测事情比这更复杂 - 似乎对于像交易邮件那样的琐碎事情,它没有必要......

或者我误解了它的运作方式!?

message-queue node.js

20
推荐指数
1
解决办法
8777
查看次数

使用Django设置紧凑的隐私策略

如何从Django设置P3P紧凑隐私策略,以便IE在安全设置为HIGH时接受来自我网站的cookie - 即除非有紧凑隐私政策,否则不接受cookie.

干杯盖伊

django cookies p3p

14
推荐指数
1
解决办法
2475
查看次数

如何在Django中使用分页对一组对象进行"随机"排序?

我有一个包含100个左右条目的模型 - 客户希望这些条目以"随机"顺序出现,但也希望在那里进行分页.

def my_view(request):
  object_list = Object.objects.all().order_by('?')
  paginator = Paginator(object_list, 10)
  page = 1 # or whatever page we have
  display_list = paginator.page(page)
  ....
Run Code Online (Sandbox Code Playgroud)

所以我的问题应该是 - 如何object_list在每个用户会话中创建一次?

django django-models

13
推荐指数
1
解决办法
7178
查看次数

如何运行fswatch来调用带有静态参数的程序?

我曾经像这样使用fswatch v0.0.2(在这个例子中,当文件改变时运行django test suit)

$>fswatch . 'python manage.py test'

这很好用.

我想排除一些导致测试每次保存运行多次的文件(Sublime文本正在保存.tmp文件,我怀疑.pyc文件也导致这种情况)

所以我升级了fswatch以启用-e模式.

然而fswatch改变的方式导致了我的麻烦 - 它现在接受一个像这样的管道参数:

$>fswatch . | xargs -n1 program

我无法弄清楚如何将参数传递给程序.例如,这不起作用:

$>fswatch . | xargs -n1 python manage.py test

这也不是:

$>fswatch . | xargs -n1 'python manage.py test'

如果不在bash脚本中打包我的命令,我怎么能这样做?

macos bash watch fswatch

13
推荐指数
2
解决办法
7216
查看次数

Django有任何统计/分析应用程序吗?

我正在寻找一个Django应用程序,它可以收集统计数据以显示给我的用户 - 即用户对他们拥有的对象有多少次观看/点击/互动 - 跟踪一段时间等.类似于如何查看您的统计数据flickr照片等.

或者是否有可以收集此信息并用于将其显示给我的注册用户的服务?

编辑:

或者如此简单的应用程序如何记录这样的东西 -

stats.log_action(my_object, stats.VIEW)

stats.log_action(my_object, stats.CLICK)

然后,这将简单地存储动作+对象以及DateTime.使用通用外键关系...然后我们可以得到汇总结果并显示它们我们喜欢的方式......我想现在,这应该是这样的 -

那么......那里有什么可以做到的吗?或者我应该自己动手?

谢了,兄弟们

django analytics

8
推荐指数
1
解决办法
7681
查看次数

Heroku buildpacks - 安装Python包使用的可执行文件

我正在尝试在Heroku上安装M2Crypto.这依赖于SWIG的安装.

我创建了一个自定义编译的swig可执行文件和一个自定义的buildpack.

我然后git push我的代码到Heroku,自定义buildpack安装SWIG然后尝试安装M2Crypto但失败,因为它找不到swig.

这是buildpack定制:

# Install SWIG
if [ ! -d $CACHE_DIR/swig ]; then
  cd $BUILD_DIR
  echo "-----> Fetching and installing SWIG 2"
  curl -O https://s3.amazonaws.com/guybowden/swig.tar.gz >/dev/null 2>&1
  echo "-----> Installing ..."
  tar xzvf swig.tar.gz >/dev/null 2>&1
  mv swig $CACHE_DIR/swig
  rm swig.tar.gz
  echo "SWIG installed" | indent
fi

mkdir -p .paybox
cp -R $CACHE_DIR/swig .paybox

echo "updating path..." | indent
PATH=$PATH:/app/.paybox/swig/bin/
export PATH
echo $PATH | indent
echo "setting …
Run Code Online (Sandbox Code Playgroud)

swig heroku

7
推荐指数
1
解决办法
1482
查看次数

具有内容的分层菜单

Contentful 有一个“链接”的概念,它可以指向许多对象或一个。但是,我无法找到一种方法来模拟反向关系而不加倍工作(即指定每个对象的子项和父项)。

我想使用 Contentful 来支持一个简单的导航,如下所示:

  • 菜单项 1

    • 子菜单项 1
    • 子菜单项 2
    • 子菜单项 3
  • 菜单项 2

    • 子菜单项 4
    • 子菜单项 5
    • 子菜单项 6
      -- 子子菜单项 1

链接可能看起来像 /<parent.slug>/<child.slug>/<child.slug>/

我可以通过遍历父级关系来找到要呈现的页面条目,以确保我得到一个带有 slug 的页面,以及一个带有特定 slug 的父级。

但是,除非您在对象中包含“子项”字段,否则很难在不诉诸多个 API 调用的情况下呈现子菜单项 - 这容易出错和不一致。

contentful

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