我有一个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-01,2012-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) 我正在寻找一种方法来在Google表单中添加简单的计算字段,该字段将取决于其他字段的值。
第一个字段是简单的价格字段quantity * price = total_price,其中数量是用户输入的数字字段。
第二个字段是结束日期now() + X months,用户选择X。
我看过Google的教程,仅发现据我所知是形式广泛的插件,在这里我正在寻找更像自定义表单字段的东西。
最好的解决方案是在用户更改其他输入的值时计算字段,但确认页面中的简单文本也可以。
如果有人能指出正确的方向,我将不胜感激。谢谢。
当我打开一个 svg 或 xml 文件并尝试运行“格式化文档”时,我收到以下消息:
There is no document formatter for 'xml'-files installed.
Run Code Online (Sandbox Code Playgroud)
为了克服这个问题,我通常只做“语言模式”-> 选择 HTML->“格式化文档”。
是否可以将 HTML 格式化程序用于 XML 和 SVG?
PS我宁愿不安装扩展。
我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 ?
我想用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)但你知道......
我有一个对请求进行身份验证的自定义函数。我正在尝试在测试过程中模拟此模块,但到目前为止还没有运气
这是我的看法
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。
我正在使用某种版本的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最新.
谢谢.
我试图在我的一个指令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) 我正在尝试将日期时间字段的默认值设置为最大日期 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安装了。
我试图改变这个:
[
{'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这样的大包装.
这里发生了什么 ?
> 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 ×4
angularjs ×3
python ×3
datetime ×1
django-1.7 ×1
google-forms ×1
javascript ×1
jquery ×1
json ×1
mocking ×1
oracle ×1
permissions ×1
python-2.7 ×1
sqlplus ×1
string ×1
unit-testing ×1