小编hak*_*aki的帖子

保持JSON数据插入的顺序-Django

我有一个JSONField在我的Django应用程序。数据可能如下所示:

{
"05/2013" : 101,
"04/2013" : 100.9,
"03/2013" : 100.5,
"02/2013" : 100.3,
"01/2013" : 100.3
}
Run Code Online (Sandbox Code Playgroud)

这是一个价格指数。当我从字段中获取数据时,我想保留数据插入的顺序。

我看了使用的高级选项OrderedDict。Dict(我猜)使用词法排序,因此输出损失为这种格式的原始顺序。我尝试过将日期翻转为format 2012-012012-02依此类推,但输出仍然混乱。部分输出:

"2011-08":104.2,
  "2011-09":104,
  "2011-02":102.3,
  "2011-03":102.5,
  "2011-01":102,
  "2011-06":104,
  "2011-07":103.7,
  "2011-04":103.1,
  "2011-05":103.6,
  "2013-04":100.9,
  "2013-05":101,
  "2012-10":106,
  "2012-11":105.5,
Run Code Online (Sandbox Code Playgroud)

我不确定这是哪种类型,而我在寻找解决方案方面落后了一步。赞赏任何想法。

编辑: 这是模型字段声明

from jsonfield import JSONField
...
values = JSONField(null=True, blank=True, verbose_name=_("values"),load_kwargs={'object_pairs_hook': collections.OrderedDict})
...
Run Code Online (Sandbox Code Playgroud)

django json

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

如何将简单的计算字段添加到Google表单?

我正在寻找一种方法来在Google表单中添加简单的计算字段,该字段将取决于其他字段的值。

第一个字段是简单的价格字段quantity * price = total_price,其中数量是用户输入的数字字段。

第二个字段是结束日期now() + X months,用户选择X。

我看过Google的教程,仅发现据我所知是形式广泛的插件,在这里我正在寻找更像自定义表单字段的东西。

最好的解决方案是在用户更改其他输入的值时计算字段,但确认页面中的简单文本也可以。

如果有人能指出正确的方向,我将不胜感激。谢谢。

google-apps-script google-forms

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

如何在vscode中像html一样格式化svg和xml?

当我打开一个 svg 或 xml 文件并尝试运行“格式化文档”时,我收到以下消息:

There is no document formatter for 'xml'-files installed.
Run Code Online (Sandbox Code Playgroud)

为了克服这个问题,我通常只做“语言模式”-> 选择 HTML->“格式化文档”。

是否可以将 HTML 格式化程序用于 XML 和 SVG?

PS我宁愿不安装扩展。

visual-studio-code

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

仅为 SQL*Plus 设置 NLS_LANG

NLS_LANG在注册表中设置了我的本地语言。CMD 无法显示我当地语言的字符,所以我看到了 jibrish。我说的是来自客户端的提示而不是实际数据,例如错误消息。

SQL> conn scott/tiger
???ß°.
Run Code Online (Sandbox Code Playgroud)

我需要将客户端的设置保留在本地 NLS 中,因为其他程序依赖于它。

我已经尝试添加$set NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252glogin,但显然它不起作用,因为脚本仅在 sql*Plus 已经启动后执行。

我的问题是,有没有什么方法NLS_LANG可以AMERICAN_AMERICA.WE8MSWIN1252 为 SQL*Plus设置to ?

oracle sqlplus

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

将精度作为参数传递给python格式

我想用precision作为参数格式化一个浮点数

"{0:,.2f}$".format(1000 + 1/float(3))
'1,000.33$'
Run Code Online (Sandbox Code Playgroud)

如何将小数位数(.2f)作为参数传递?

仅供参考,我知道我可以使用,round(n,precision)但是当precision=0它打印时,0.0这不是我想要的.我也可以连接,"{0:,." + str(precision) + "2f}f".format(n)但你知道......

python string string-formatting python-2.7

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

测试Django视图时的模拟模块

我有一个对请求进行身份验证的自定义函数。我正在尝试在测试过程中模拟此模块,但到目前为止还没有运气

这是我的看法

from auth_utils import authenticate_request, UnauthenticatedRequest

def my_view(request):
    try:
        authenticate_request(request)
    except UnauthenticatedRequest:
        return Http404()
    return render(request, 'ok.html', {'status': 'ok'})
Run Code Online (Sandbox Code Playgroud)

在测试中,我正在尝试模拟,authenticate_request这样就不会引发错误

class TestMyView(MyAPITestCase, TestCase):

    @mock.patch('auth_utils.authenticate_request', side_effect=None)
    def setUp(self, mock_auth):
        self.response = self.client.get(reverse('my-view'))

    def test_should_return_ok(self):
        self.assertEqual(self.response.context.get('status'), 'ok')
Run Code Online (Sandbox Code Playgroud)

无法使其工作。有什么建议么 ?

谢谢,Python 2.7,Django 1.8。

python django unit-testing mocking

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

Angular.js - 从指令更新父范围

我正在尝试从指令更新父作用域中的值的dict.dict父级通过一个函数更新(这里解释),所以我真的不明白为什么当我打印values我看到它们但是当绑定pre标签时它没有改变.另外,为什么field.error不在指令模板中显示?

我在这个jsbin中设置了我的问题的简化例子

Angular newbi,非常沮丧...谢谢.

javascript angularjs

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

使用jquery element.val()时ng-model没有更新

这里有PLUNKR的例子

我正在使用某种版本的jquery自动完成作为angularjs direcitve.当jquery使用element.val()angular 更新输入值时,直到下一个摘要(我想)之后才会注意到更改.

我的第一个想法是ng-model使用post digest 执行操作$timeout但是你可以看到它没有帮助.

我的第二种方法是覆盖元素的val函数以触发input事件,但我还没有设法让它工作.

尝试从自动完成列表中选择一个值,您将看到上面的ng-model没有更新.

UPDATE

谢谢你的回复.我不知道这个onSelect选项.

这是基于您的建议的代码

// clone user provided options 
scope.options = _.extend({}, scope.AutoCompleteOptions());

// Wrap onSelect - Force update before manipulation on ng-model
var fn = _.has(scope.AutoCompleteOptions(), 'onSelect')  ? scope.AutoCompleteOptions().onSelect : _.noop;
scope.options.onSelect = function () { 
  ngModelCtrl.$setViewValue(element.val()); 
  scope.$apply(fn);
};

scope.autocomplete = $(element).autocomplete(scope.options);
Run Code Online (Sandbox Code Playgroud)

这样我保持指令的界面,同时保证ng-model最新.

谢谢.

jquery angularjs

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

使用指令中所需的父控制器

我试图在我的一个指令ngModel和我自己的指令上要求两个控制器.

父控制器应该注入到孩子的链接功能,但我无法让它工作.我想知道我做错了什么......

app.directive('container', function () { 
  return { 
    transclude : true ,
    template : "<div ng-transclude></div>",
    controller : function ($scope) { 
      console.log('container controller');
      $scope.v1 = '123';
      $scope.f1 = function () { 
         console.log('f1');
      };
    },
    link : function (scope, element) { 
      console.log('container link');
    }
  };
});

app.directive('single', function () { 
  return { 
    require : ['^container','ngModel'], 
    scope : false , 
    link : function (scope, element, attrs , parentsCtrl) { 
      console.log('single link');
      console.log(parentsCtrl);

      var containerParent = parentsCtrl[0];
      var ngModel = parentsCtrl[1]; …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

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

Django - 将 DateTimeField 默认设置为 timezone.datetime.max

我正在尝试将日期时间字段的默认值设置为最大日期 timezone.datetime.max

from django.db import models
from django.utils import timezone

class Item(models.Model):
  id = models.AutoField(primary_key=True)
  deleted  = models.DateTimeField(default=timezone.datetime.max)
Run Code Online (Sandbox Code Playgroud)

每当我尝试将新对象保存到数据库时,都会收到此错误

/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py:903:
RuntimeWarning: DateTimeField Item.deleted received a naive datetime (9999-12-31 23:59:59.999999) while time zone support is active. RuntimeWarning)
Run Code Online (Sandbox Code Playgroud)

所以阅读关于这个问题的文档USE_TZ=True我已经设置并且我已经pytz安装了。

django datetime

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

按python中两个值的dicts列表分组

我试图改变这个:

[
  {'perm':'copy',   'id':1, 'name':'user1'},
  {'perm':'read',   'id':1, 'name':'user1'},
  {'perm':'delete', 'id':2, 'name':'user2'},
  {'perm':'copy',   'id':2, 'name':'user2'},
  {'perm':'update', 'id':3, 'name':'user3'}
]
Run Code Online (Sandbox Code Playgroud)

进入这个:

[
  {'id':1, 'name':'user1', 'perms': {'copy': True, 'read': True}}
  {'id':2, 'name':'user2', 'perms': {'copy': True, 'delete': True}}
  {'id':3, 'name':'user3', 'perms': {'update': True }}
]
Run Code Online (Sandbox Code Playgroud)

什么是最好的"pythonic"方式呢?

itertools.groupby看起来像一团糟,我不想加载像pandas这样的大包装.

python

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

Django 1.7 - 以编程方式添加权限无法按预期工作

这里发生了什么 ?

> from django.contrib.auth.models import Permission
> from django.contrib.contenttypes.models import ContentType
> p = Permission.objects.filter(
    content_type = ContentType.objects.get_for_model(Transaction)
).get(
    codename = 'add_transaction'
)
> user.user_permissions.add(p)

> user.user_permissions.all()
[<Permission: myapp | Transaction | Can add Transaction>]
> user.get_all_permissions()
set([])
> user.has_perm('add_transaction')
False
> user.has_perm('myapp.add_transaction')
False
Run Code Online (Sandbox Code Playgroud)

我是否在某处错过了保存?

django permissions django-1.7

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