小编gee*_*ekQ的帖子

用于管理页面的Django国际化 - 翻译模型名称和属性

Django的国际化非常好(基于gettext,LocaleMiddleware),但是翻译模型名称和管理页面属性的正确方法是什么?我在文档中没有找到任何相关内容:

我想要"Выберитезаказдляизменения"而不是"Выберитеorderдляизменения".请注意,"订单"未翻译.

首先,我定义了一个USE_I18N = True在settings.py中激活的模型,运行django-admin makemessages -l ru.默认情况下,不会为模型名称和属性创建任何条目.

在Django源代码中,我发现:

$ ack "Select %s to change"
contrib/admin/views/main.py
70:        self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s to change') % force_unicode(self.opts.verbose_name))
Run Code Online (Sandbox Code Playgroud)

所以verbose_name元属性似乎在这里发挥了一些作用.试图用它:

class Order(models.Model):
    subject = models.CharField(max_length=150)
    description = models.TextField()
    class Meta:
        verbose_name = _('order')
Run Code Online (Sandbox Code Playgroud)

现在更新的po文件包含msgid 'order'可以翻译的文件.所以我把翻译放进去.不幸的是,运行管理页面会显示"Выберитеorderдляизменения"的相同组合.

我目前正在使用Django 1.1.1.有人可以指点我的相关文件吗?因为谷歌不能.;-)同时我将深入研究django源代码......

django gettext internationalization django-admin

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

弹性搜索中的多个过滤器和聚合

如何在elasticsearch中使用与聚合相关的过滤器?

官方文档仅提供过滤器聚合的简单示例,并且没有对dsl的查询的正式描述 - 例如与postgres文档进行比较.

通过尝试我发现以下查询,这是由elasticsearch接受(没有解析错误),但忽略给定的过滤器:

{
  "filter": {
    "and": [
      {
        "term": {
          "_type": "logs"
        }
      },
      {
        "term": {
          "dc": "eu-west-12"
        }
      },
      {
        "term": {
          "status": "204"
        }
      },
      {
        "range": {
          "@timestamp": {
            "from": 1398169707,
            "to": 1400761707
          }
        }
      }
    ]
  },
  "size": 0,
  "aggs": {
    "time_histo": {
      "date_histogram": {
        "field": "@timestamp",
        "interval": "1h"
      },
      "aggs": {
        "name": {
          "percentiles": {
            "field": "upstream_response_time",
            "percents": [
              98.0
            ]
          }
        }
      }
    } …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

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

在android浏览器中打开一个url,避免多个标签

我的项目主要是一个Web应用程序.现在我有一个带有主屏幕小部件的Android应用程序,并希望在内置浏览器中打开某些用户操作的网页.这很容易.在MyAppWidgetProvider.onUpdate中,我创建了一个新的intent:

Intent intent = new Intent("android.intent.action.VIEW", 
    Uri.parse("http://my.example.com/"));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.text, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

不幸的是,每次用户点击小部件时都会打开一个新的浏览器窗口/标签.我的页面包含一些在后台运行的花哨的AJAX/javascript并定期发送http请求.所以我最终得到8个包含相同页面的标签,并不断发送8倍数量的http请求.

是否有任何方法,例如不同的操作或其他参数,以避免打开新标签?

作为一种解决方法,我现在正在考虑创建一个包含WebView的新活动,但希望避免这种复杂性.

android

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

AWS 'Bucket 已经存在' - 如何将现有资源“迁移”到 CloudFormation?

我们已经手动和使用 terraform 创建了一些基础设施,包括一些 s3 存储桶。将来我想使用纯 CloudFormation 将基础设施定义为代码。

所以我创建了一个 CloudFormation yaml 定义,它引用了一个现有的存储桶:

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  TheBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: my-existing-bucket-name
Run Code Online (Sandbox Code Playgroud)

当我尝试应用它时,执行失败,出现 CloudFormation 堆栈事件:

The following resource(s) failed to update: [TheBucket].
12:33:47 UTC+0200   UPDATE_FAILED   AWS::S3::Bucket TheBucket
  my-existing-bucket-name already exists
Run Code Online (Sandbox Code Playgroud)

如何在不重新创建现有资源的情况下开始使用 CloudFormation管理现有资源?还是设计上不可能?

amazon-web-services amazon-cloudfront

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

psycopg中`cursor`类有什么意义?

我想用INSERT和UPDATE修改一些数据.从psycopg教程看起来我需要它

cur = connection.cursor()
cur.execute(my_insert_statement)
connection.commit()
Run Code Online (Sandbox Code Playgroud)

Psycopg的游标类似乎与postgres定义的游标几乎没有关系.

如果我模块化我的脚本,在主模块中创建一个连接和一些工作函数(没有线程,只是为了模块化)我应该

  1. 将连接参数传递给函数并每次都重新创建游标.经常创建新游标对象会有很大的开销吗?

    def process_log_file(self, connection):
    
    Run Code Online (Sandbox Code Playgroud)
  2. 传递连接和光标 - 使函数签名和实现不必要地复杂化

    def process_log_file(self, connection, cursor):
    
    Run Code Online (Sandbox Code Playgroud)
  3. 仅将游标作为参数传递并mycursor.connection.commit()用于提交

    def process_log_file(self, cursor):
    
    Run Code Online (Sandbox Code Playgroud)

python postgresql psycopg2

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

第二个$(文件).ready事件jQuery

我正在使用一些带有$(document).ready()的外部jQuery在文档就绪事件被触发后插入广告,例如:

$(document).ready( function() {
  $('#leaderboard').html("<strong>ad code</strong>");     
});
Run Code Online (Sandbox Code Playgroud)

这是为了防止UI被广告的缓慢加载阻止.到目前为止,它一直运作良好.

现在我需要通过我们的CMS系统插入更多的广告,这不能是外部JS文件的一部分,所以我想知道我可以使用第二个文档就绪事件并使用内联脚本标记插入它吗?如果是这样,首先执行外部JS文档就绪事件或内联脚本的执行顺序是什么?

html javascript jquery ads blocking

6
推荐指数
3
解决办法
6820
查看次数

Django测试 - InternalError:当前事务被中止,命令被忽略直到事务块结束

在我的测试中,我不仅测试完美的情况,尤其是边缘情况和错误条件.所以我想确保一些唯一性限制工作.

虽然我的测试和测试装置非常复杂,但我能够将问题跟踪到以下示例,该示例不使用任何自定义模型.要重现行为,只需将代码保存到tests.py并运行django test runner.

from django.contrib.auth.models import User
from django.db import IntegrityError
from django.test import TransactionTestCase

class TransProblemTest(TransactionTestCase):
    def test_uniqueness1(self):
        User.objects.create_user(username='user1', email='user1@example.com', password='secret')
        self.assertRaises(IntegrityError, lambda :
            User.objects.create_user(username='user1', email='user1@example.com', password='secret'))

    def test_uniqueness2(self):
        User.objects.create_user(username='user1', email='user1@example.com', password='secret')
        self.assertRaises(IntegrityError, lambda :
            User.objects.create_user(username='user1', email='user1@example.com', password='secret'))
Run Code Online (Sandbox Code Playgroud)

具有单个测试方法的测试类可以工作,但是使用两个相同的方法实现失败.第一个测试抛出异常打破了Django测试环境,并使以下所有测试失败.

我正在使用Django 1.1和Ubuntu 10.04,Postgres 8.4和psycopg2.

问题在Django 1.2中是否仍然存在?

这是一个已知的错误还是我错过了什么?

django postgresql django-testing

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