小编Bar*_*tek的帖子

django-haystack order - 我该如何处理?

我在我的网站上使用django-haystack搜索页面.我基本上已经完成了,但对订购不太满意,不太确定haystack如何决定如何订购.

我知道我可以通过使用order_by覆盖SearchQuerySet 但完全超越它.假设我想强制搜索按库存(BooleanField)进行排序,以便库存中的产品显示在顶部,但随后会像通常那样执行其他操作.我怎么做?

我试过把order_by('-in_stock', 'content')图形内容当作默认使用的内容,但它产生了非常不同的结果,如果我只是让它做自己的排序.

感谢您对此事的任何意见!

django search django-haystack

9
推荐指数
1
解决办法
5071
查看次数

Robots.txt:这个通配符规则有效吗?

简单的问题.我想补充一下:

Disallow */*details-print/
Run Code Online (Sandbox Code Playgroud)

基本上,/foo/bar/dynamic-details-print在这个例子中以--- foo和bar 形式的阻塞规则也可以是完全动态的.

我认为这很简单,但是在www.robotstxt.org上有这样的信息:

另请注意,User-agent或Disallow行不支持globbing和正则表达式.User-agent字段中的'*'是一个特殊值,意思是"任何机器人".具体来说,你不能拥有像"User-agent:bot ","Disallow:/ tmp/*"或"Disallow:*.gif"这样的行.

所以我们不能这样做?搜索引擎是否遵守它?但是,有Quora.com的robots.txt文件:

Disallow: /ajax/
Disallow: /*/log
Disallow: /*/rss
Disallow: /*_POST
Run Code Online (Sandbox Code Playgroud)

那么,谁是对的 - 或者我是否误解了robotstxt.org上的文字?

谢谢!

seo robots.txt

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

RabbitMQ/Celery与Django挂起延迟/准备/等 - 没有有用的日志信息

所以我只是设置celery和rabbitmq,创建我的用户,设置vhost,将用户映射到vhost,并成功运行celery守护进程(或者我假设)

(queuetest)corky@corky-server:~/projects/queuetest$ ./manage.py celeryd
 celery@corky-server v0.9.5 is starting.
 Configuration ->
. broker -> amqp://celery@localhost:5672/
. queues ->
. celery -> exchange:celery (direct) binding:celery
. concurrency -> 2
. loader -> celery.loaders.djangoapp
. logfile -> [stderr]@WARNING
. events -> OFF
. beat -> OFF

Celery has started.
Run Code Online (Sandbox Code Playgroud)

我创造了一个"芹菜"的用户,因为在这种情况下我并没有感觉很有创造力.

当我尝试在芹菜文档中做一个简单的例子时:

>>> from tasks import add
>>> r = add.delay(2, 2)
>>> r
<AsyncResult: 16235ea3-c7d6-4cce-9387-5c6285312c7c>
>>> r.ready()
(hangs for eternity.)
Run Code Online (Sandbox Code Playgroud)

所以我检查了常见问题解答,想知道还有什么可能会起来,它告诉我这是一个由于用户权限而导致的常见错误,所以我三重检查那些,没有,做了另一个新用户,仍然没有.如果我DjangoBrokerConnection从中导入carrot.connection并获取信息,它会与我的芹菜设置中的内容相匹配.常见问题解答说明了检查您的日志文件.

我的rabbit.log文件在这种情况下不是很有用,只是显示:

=INFO REPORT==== 26-Jan-2010::11:58:22 ===
accepted …
Run Code Online (Sandbox Code Playgroud)

python django rabbitmq celery

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

Ruby 1.9和Sass编码问题.(从ASCII-8BIT到UTF-8)

我最近升级到Ruby 1.9,我不能再使用Sass编译任何东西.

如果我放置,我已经看到了解决方案

 @charset "utf-8";
Run Code Online (Sandbox Code Playgroud)

在我的.sccs文件的顶部,它将修复它.但是我仍然收到错误.这是完整的追溯

我也尝试从我的CSS文件中删除任何非ascii字符,创建一个新的等等.它只是不会编译.有小费吗?

追溯:

Sass正在关注变化.按Ctrl-C停止.

/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:496:in`coding':不支持转码(从ASCII-8BIT到UTF-8)(ArgumentError)

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:496:in _enc' from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:515:inblock in block(1 levels)in'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:508:in`block(1 levels)in'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in"yield"

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in'default'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in,clock in check_sass_encoding'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in"each"

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in`find'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in`check_sass_encoding'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:349:in`check_encoding!'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:316:in`_to_tree'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:291:in`_render'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:238:在`render'中

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:319:in`update_stylesheet'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:169:in在update_stylesheets中的块

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:167:in"each"

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:167:in`update_stylesheets'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:214:in`watch'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin.rb:111:in`method_missing'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:408:in`watch_or_update'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:294:in,process_result'

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:41:in"parse"

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:21:in"解析!"

来自/home/webdev/.gem/repository/gems/sass-3.1.1/bin/sass:8:in`'

来自/home/webdev/.gem/repository/bin/sass:19:in"load'

来自/home/webdev/.gem/repository/bin/sass:19:in`'

ruby encoding sass

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

Django(?)在进行一些python性能分析后,对于大型数据集确实很慢

我正在比较我的旧PHP脚本与较新的,更高级的Django版本和PHP版本,完全吐出HTML并且所有功能都运行得更快.更快到Django上的某些东西必须出错.

首先,一些背景信息:我有一个页面可以显示销售数据的报告.数据可以通过许多方式进行过滤,但大部分都是按日期过滤的.这使得缓存它有点困难,因为结果的可能性几乎是无穷无尽的.有很多数字和计算完成但在PHP中处理从来都不是一个问题.

更新:

  • 经过一些额外的测试后,我的观点中没有任何因素导致经济放缓.如果我只是对数据进行数字处理并吐出5行渲染的HTML,那就不那么慢(仍然比PHP慢),但如果我渲染了大量数据,那就非常慢了.

  • 每当我运行大型报告(例如,当年的所有销售)时,机器的CPU使用率就会达到100%.不知道这是否意味着什么.我正在使用mod_python和Apache.也许转换到WSGI可能会有所帮助?

  • 对于非常大的集合,我的模板标签显示小计/总计处理的范围从0.1秒到1秒.我在报告中称他们为6次,所以他们似乎不是最大的问题.

现在,我运行了一个Python分析器并返回了这些结果:

Ordered by: internal time
   List reduced from 3074 to 20 due to restriction 

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
  2939417   26.290    0.000   44.857    0.000 /usr/lib/python2.5/tokenize.py:212(generate_tokens)
  2822655   17.049    0.000   17.049    0.000 {built-in method match}
  1689928   15.418    0.000   23.297    0.000 /usr/lib/python2.5/decimal.py:515(__new__)
 12289605   11.464    0.000   11.464    0.000 {isinstance}
   882618    9.614    0.000   25.518    0.000 /usr/lib/python2.5/decimal.py:1447(_fix)
    17393    8.742    0.001   60.798    0.003 /usr/lib/python2.5/tokenize.py:158(tokenize_loop)
       11    7.886    0.717    7.886    0.717 {method 'accept' of '_socket.socket' objects}
   365577    7.854    0.000   30.233    0.000 /usr/lib/python2.5/decimal.py:954(__add__) …

python django optimization

5
推荐指数
1
解决办法
5350
查看次数

Django GenericTabularInline根本不起作用,但模型是正确的

我刚刚将我的一个模型转换为使用通用外键.模型正在使用这些,数据库正在报告正确的值,我所拥有的API与新的外键完美配合,零变化(保持相同的字段名称).

但是,管理员完全失败了.Inline显示没有数据,尽管有一些(见上文).这是我的型号代码:

class CartItem(models.Model):
    cart = models.ForeignKey(Cart)
    quantity = models.PositiveIntegerField()
    price_item = models.DecimalField(max_digits=19, decimal_places=2)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField(db_column="shop_item_id")
    shop_item = generic.GenericForeignKey("content_type", "object_id")
Run Code Online (Sandbox Code Playgroud)

相当直截了当吧?admin.py看起来像这样:

class CartItemInline(generic.GenericTabularInline):
   model = CartItem 

class CartAdmin(admin.ModelAdmin):
   inlines = [
        CartItemInline,
   ]
Run Code Online (Sandbox Code Playgroud)

有趣的事实.如果我将'shop_item'添加到内联类中的字段元组,我会收到此错误:

'CartItemInline.fields'指的是表单中缺少的字段'shop_item'.

但是......它在那里?我已经尝试了一切,30分钟后,我只是放弃了最有可能解决问题的极其简单的问题,我的眼睛今天根本看不到.:(

所有这些在使用GenericForeignKey之前都有效,所以不确定问题是什么.

谢谢你的帮助.

django django-admin

5
推荐指数
1
解决办法
1297
查看次数

Django SQLite测试奇怪:不同的执行路径?

这仅仅是一个我想根据其他人的反馈和类似的经历得出的理论.

一直在使用mySQL来运行测试,但当然内存中的SQLite数据库要快得多.但是,它似乎遇到了一些问题.

何时DATABASE_ENGINE设置为use django.db.backends.sqlite3并且我运行manage.py test,输出不符合预期:

(删除了大多数行,但指出了有趣的失败点)

$ python manage.py test
Traceback (most recent call last):
  File "manage.py", line 12, in 
    execute_manager(settings)
  File "/Users/bartekc/.virtualenvs/xx/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/Users/bartekc/domains/xx/xx/associates/yy/models.py", line 51, in 
    class AcvTripIncentive(models.Model):

  # First interesting failure
  File "/Users/bartekc/domains/xx/xx/associates/yy/models.py", line 55, in AcvTripIncentive
    trip = models.OneToOneField(Trip, limit_choices_to={'sites' : Site.objects.get(name='ZZ'), 'is_active' : True,})

  # Next interesting failure
   File "/Users/bartekc/domains/xx/xx/associates/yyz/models.py", line 252, in 
    current_site = Site.objects.get_current()

有这样的多个失败,但只是指出了一对.问题很明显.站点模型没有实际数据,但文件包含尝试获取站点模型下的当前或特定实例的代码.

现在,我可以想到一个简单的解决方案:OneToOneField应该切换为使用函数limit_choices_to,第二个使用相同的函数.然后在需要时调用这些函数,而不是在Django对文件进行初始扫描时调用.

但是,我的实际问题是:为什么这会发生在SQLite而不是mySQL?.两个数据库引擎通过测试有不同的方式吗?我不这么认为,因为Python正在对模型进行所有编译.

到底发生了什么? …

python sqlite django unit-testing

5
推荐指数
1
解决办法
432
查看次数

使用filter()和Q对象混合的Django ORM查询

我正在寻找创建一个稍微复杂的查询,使用原始SQL很容易编写.以下是raw中查询的示例:

SELECT my,fields FROM sales WHERE is_paid = False OR status ='toship'AND otherfield ='FOO'AND another ='BAR'

这很简单,它生成所有结果为is_paid = False,然后为我的AND匹配生成第二个结果集.

现在我知道了Q对象,我知道有关过滤但是我似乎无法完全理解如何在Django ORM中实现这一目标.

有小费吗?

谢谢

django orm django-q

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

Chrome中的document.execCommand('heading'..')

我想在MDN描述使用富文本编辑命令的功能在这里

这个API似乎很简单.选择一些文本,然后执行命令,然后用它包装内容.酷的东西!

在Firefox(Aurora)中,这非常有用:

document.execCommand('heading', false, 'H1');
Run Code Online (Sandbox Code Playgroud)

但是Chrome中的相同命令不会返回任何内容.这在Chrome中的实现方式是否相同(或根本没有)?

谢谢!

javascript firefox google-chrome

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

迭代Python中具有潜在条件的大型列表

我有大量的数据,通常大约有2000多个条目,但在本报告中,我们能够看到我们想要的内容,因此最多可以有10,000条记录

报告分为:两个类别,然后在每个类别中,我们按货币划分,因此我们在列表中有几个子类别.

我的问题在于有效地计算各种小计.我正在使用Django并将模板标签传递给货币和类别(如果适用),然后templatetag呈现总计.请注意,有时我只为该类别设置了一个小计,没有通过任何货币.

最初,如果有像这样的货币/类别,我只使用.filter()对每个小计使用单独的查询:

if currency:
  entries = entries.filter(item_currency=currency)
Run Code Online (Sandbox Code Playgroud)

这成了一个问题,因为我会有太多的查询,而且生成时间太长(2000+ ms),所以我选择使用list(条目)来立即执行我的查询,然后通过简单的循环遍历它列表理解:

totals['quantity'] = sum([e.quantity for e in entries])
Run Code Online (Sandbox Code Playgroud)

如果你还没有看到我的问题,那就在于......如何在每个列表理解中有效地添加货币/类别的条件?有时他们不会在那里,有时他们会这样,所以我不能简单地输入:

totals['quantity'] = sum([e.quantity for e in entries if item_currency = currency])
Run Code Online (Sandbox Code Playgroud)

我可以制作一个巨大的if-block,但这不是很干净并且是一个维护灾难,所以我正在向Stackoverflow社区寻求一些洞察力...提前感谢:)

python django list

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