小编Hou*_*man的帖子

ugettext:如何处理句子中的变量?

from django.utils.translation import ugettext_lazy as _

_(u"I am off to school at '%s' o'clock" % time)
Run Code Online (Sandbox Code Playgroud)

这有点奇怪,因为我会像这样翻译整行

"I am off to school at \'%s\' o'clock"
Run Code Online (Sandbox Code Playgroud)

现在如果翻译者错误地删除了''%s \',它会破坏代码.

我应该把句子分成两部分吗?但这可能会让翻译人员无法理解句子的背景.

_(u"I am off to school at ") + '%s' + _(u"o'clock") % time
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

django

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

Django支持Javascript文件中的翻译

我阅读并按照这里的说明进行操作,但似乎无法在po文件中看到javascript中的字符串.

structure of my project is: 
cb/    
   cb_app    
   cb    
   static_files    
   templates
Run Code Online (Sandbox Code Playgroud)

首先我将这些复制到我的url.py中:

js_info_dict = {
    'packages': ('cb_app',),
}

urlpatterns = patterns('',
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
)
Run Code Online (Sandbox Code Playgroud)

然后我将这个脚本添加到我的html中:

<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
Run Code Online (Sandbox Code Playgroud)

我希望获得翻译的实际脚本就是这样简单:

$(document).ready(function () { 
    $('#id_sales_item').chosen({no_results_text: gettext('No results match')}); 
});
Run Code Online (Sandbox Code Playgroud)

...并在相同的HTML中使用.

那还有什么我需要做的吗?

我所做的一切,然后是从运行下面两行cb/cb,并从cb/cb_app.

django-admin.py makemessages -l en_GB
Run Code Online (Sandbox Code Playgroud)

但仍处于要么没有"没有结果匹配"的迹象cb/cb/locale也没有cb/cb_app/locale

有小费吗?

javascript django internationalization

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

Django性能/内存使用情况

我正在EC2 Small实例(1.7 GB RAM)上运行我的应用程序的alpha版本,其中包含postgres和apache(wsgi-mod不是守护进程但是直接).

表现不错,但可能会更好.如果有太多测试用户加入,我也担心内存使用情况.

从Apache切换到nginx服务器是否明智?有没有任何Django开发人员做到这一点,并对结果更满意?在路上任何其他提示也是受欢迎的.

谢谢

memory apache django performance nginx

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

使用Django生成正确的HTML语义

我通常保持简单,并在我的模板中使用以下表单语法:

<div>
       <div>{{form.title.label}}:</div>
       <div>{{form.title}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是html输出中的语义不好.

<div>
    <div>Title:</div>
    <div><input id="id_form-title" type="text" maxlength="30" name="form-title"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

正确的应该是:

<div>
    <label for="id_form-title">Title</label>
    <input id="id_form-title" type="text" maxlength="30" name="form-title">
</div>
Run Code Online (Sandbox Code Playgroud)

是否有django内置标签为我自动执行此操作,或者我必须自己手动执行此操作吗?

<div>
    <label for="id_form-title">{{form.title.label}}</label>
    {{form.title}}
</div>
Run Code Online (Sandbox Code Playgroud)

django

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

Django/Celery中的定期任务 - 如何在屏幕上通知用户?

我现在已成功设置Django-celery以检查我现有的任务,以便在任务到期时通过电子邮件提醒用户:

@periodic_task(run_every=datetime.timedelta(minutes=1))  
def check_for_tasks():      
    tasks = mdls.Task.objects.all()
    now = datetime.datetime.utcnow().replace(tzinfo=utc,second=00, microsecond=00)
    for task in tasks:
        if task.reminder_date_time == now:
            sendmail(...)
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都那么好,但是如果我还要向用户显示弹出窗口作为提醒呢?

Twitter引导程序允许创建弹出窗口并从javascript中显示它们:

$(this).modal('show');
Run Code Online (Sandbox Code Playgroud)

问题是,芹菜工作者守护程序如何在用户的浏览器上运行此javascript?也许我走错了路,这根本不可能.因此问题仍然是芹菜上的cronjob可以用来在浏览器上实现ui通知吗?

django celery django-celery

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

清空标签时,内部的事件附加按钮是否收集了垃圾?

有了这样的代码,我想知道我是否第二次运行这个函数,这种情况会发生:

  1. 当清空#deals标签时,btn尽管它们上面有事件并且生活很好,但所有内部都会被擦除.
  2. 我必须先取消订阅btn,否则清空#deals标签会导致内存泄漏?
  3. 项目清单

码:

function test(){
    var row = $(this).closest('tr');  
    $(row).find('#deals').empty();

    $(result).find('#tab li a').each(function() {               
      var btn = $('<a/>', {class: 'btn', href: '#'});

      $(row).find('#deals').append(btn);

      btn.click(function(event){
          event.preventDefault();
          ...
         });
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

jquery validate:如何显示和隐藏错误摘要?

在这里根据这个例子实现了一个错误摘要:

当我让它显示时,我没有线索如何在没有错误的情况下隐藏它.

我在这里用它来演示它:

键入两个字段中的任何一个字段,而错误消息消失,摘要仍然存在.必须有一个我需要订阅的事件,但我无法弄清楚.

$(document).ready(function () {

  var validator = validation_rules('#myform');
  validator.form();

  function validation_rules(form) {

    $.validator.addClassRules("fillone", {
      require_from_group: [1, ".fillone"]
    });

    var validator = $(form).validate({
      errorPlacement: function (error, element) {
        var field_error = $(form).find('#id_' + element.attr('name')).siblings('.field_error');
        if (field_error.length > 0) {
          error.appendTo(field_error);
        }

        $(field_error).show();
      },
      invalidHandler: function () {
        $("#validation_summary").text(validator.numberOfInvalids() + " field(s) are invalid");
      }

    });
    return validator;
  }

});
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

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

Django:无法更改默认语言

我已经用en-gb语言代码开发了一段时间。现在已经接近发布日期了,我打算将默认语言切换为en-us,但无论我做什么,初始request.LANGUAGE_CODE设置都将被设置为en-gb即使对于未注册的用户也是如此。

仅供参考,我实际上想将time_zone保留在伦敦,而只需将默认语言更改为美式英语。现在,我只是为了使它工作而改变了它们,但仍然没有喜悦。

#TIME_ZONE = 'Europe/London'
TIME_ZONE = 'US/Eastern'

LANGUAGE_CODE = 'en-us'
#LANGUAGE_CODE = 'en-gb'

ugettext = lambda s: s

LANGUAGES = (
    ('en', ugettext('American English')),
    ('en-gb', ugettext('British English'))
)

USE_I18N = True
USE_L10N = True
USE_TZ = True
Run Code Online (Sandbox Code Playgroud)

我可能会缺少什么?谢谢

python django translation internationalization

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

在Google应用引擎上更改模型的后果

默认情况下,SQL Alchemy或Django基于关系数据库.因此,对模型的任何更改都需要迁移工具,例如sqlalchemy-migrate或South.

现在切换到Google App引擎并使用ndb,如果我更改模型会发生什么?从理论上讲,像Big-Table这样的NoSQL数据库不应该关心进化模式,因此不需要迁移.

但是,定义诸如此类的模型,清楚地表明要验证的模式.

class ExampleModel(ndb.Model):
    example_name = ndb.StringProperty(required=True)
    example_description = ndb.TextProperty(required=True)
    added_by = ndb.UserProperty()
    timestamp = ndb.DateTimeProperty(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

那么如果我添加一个字段会发生什么?更改了字段甚至删除了字段?

我的假设如下:

添加字段

  • 也许是最简单的情况,只有新模型的新实例才会针对新字段进行验证.加载任何旧实例时,该字段只保持为空.但是,如果字段设置为必需,会发生什么?

删除字段

  • 在这种情况下,所有旧实例都将包含已删除字段的孤立数据.但他们留在那里,从现在开始将被忽视.

修改字段名称

  • 以上两者的组合; 新名称将被视为新字段,旧字段将被忽略和孤立.

这个假设是否正确?

google-app-engine app-engine-ndb google-cloud-datastore

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

Flask:如何阻止Google Analytics JS在开发环境中运行?

在使用谷歌分析注册时,需要在其中插入一段js脚本 base.html

<script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'xxx', 'example.com');
      ga('send', 'pageview');

    </script>
Run Code Online (Sandbox Code Playgroud)

让它始终存在的问题是,开发机器将提交不是来自真实用户的不必要数据.我想知道是否有办法询问烧瓶是否处于调试模式,因此不首先加载此脚本.

如何在模板中检查调试模式?

google-analytics flask

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