我正在使用django 1.4并且我有一个many2many字段,所以在创建管理站点时我想将此字段添加为内联,这里有一些代码:
class SummaryInline(admin.TabularInline):
model = ParserError.summaries.through
class MyClassAdmin(admin.ModelAdmin):
list_display = ('classifier', 'name', 'err_count', 'supported')
fields = ('classifier', 'name', 'err_count', 'err_classifier', 'supported')
inlines = (SummaryInline,)
readonly_fields = ('classifier', 'err_count')
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何才能使内联字段只读?
有没有办法在服务器端进行时区偏移,通过http读取请求中的内容,而不是将所有内容发送到客户端并让它处理它?
有没有办法用新格式语法格式化函数调用的字符串?例如:
"my request url was {0.get_full_path()}".format(request)
Run Code Online (Sandbox Code Playgroud)
所以它调用该函数get_full_path的功能里面的字符串,而不是作为格式功能的参数.
编辑:这是另一个可能更好地表明我的挫败感的例子,这就是我想要的:
"{0.full_name()} {0.full_last_name()} and my nick name is {0.full_nick_name()}".format(user)
Run Code Online (Sandbox Code Playgroud)
这是我想要避免的:
"{0} and {1} and my nick name is {2}".format(user.full_name(), user.full_last_name(), user.full_nick_name())
Run Code Online (Sandbox Code Playgroud) 所以我想在某些字段中找到任何类型的匹配,例如,这就是我想要做的:
possible_merchants = ["amazon", "web", "services"]
# Possible name --> "Amazon Service"
Companies.objects.filter(name__icontains__in=possible_merchants)
Run Code Online (Sandbox Code Playgroud)
遗憾的是,无法混合icontains和__in查找.
它似乎是一个非常复杂的查询,所以如果至少我可以忽略大小足够的名称,例如:
Companies.objects.filter(name__ignorecase__in=possible_merchants)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
PD:我发布的查询不起作用,这只是一种表达我需要的方式(以防万一)
我正在做一些单元测试,在某些时候我需要模拟一个super调用来抛出错误,例如:
@classmethod
def myfunc(cls, *args, **kwargs)
try:
super(MyClass, cls).my_function(args, kwargs)
except MyException as e:
#...
Run Code Online (Sandbox Code Playgroud)
我正在使用mocker库来模拟我的对象,但我还没有找到一种模拟它的方法.
所以我有一个巨大的文件,我想用vim格式化.
所以我想删除每一行的'\n',这是一个文件示例:
I
Want
to
be
just one
line
Run Code Online (Sandbox Code Playgroud)
我试图用这个来做:
:%g/^/norm!(a keyword that deletes the /n)
Run Code Online (Sandbox Code Playgroud)
我只是不知道哪个关键字可能对此有用,所以换句话说,我想知道一种方法来自动化每行的手动命令'I(按删除按钮)'.
提前致谢!
我正在做一份报告,在报告中我必须提供来自不同提供商的电子邮件,这些电子邮件附带自己的css(通常是内联css,但有时它们会应用一般样式).我通常使用iframe来封装css所以它不会破坏我的但我现在不能使用它.
有没有办法在不使用iframe的情况下封装css?
这是我遇到的问题的一个例子:
<html>
<head>
<style>
// I enclose it to content so it doesn't override the email css
#my_content table, #my_content p {
color: black;
}
</style>
</head>
<body>
<div id='my_content'>
... some stuff ...
<div id='email'>
<html>
<head>
<style>
table {
margin-left: 100cm; // screws up all my tables
}
.... some styles that should only apply inside the email div ...
</style>
</head>
<body>
.... email content ...
</body>
</html>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我可以提取html结构,只是得到正文,但不是我的所有电子邮件都看起来应该是这样.此外,HTML必须有效,所以任何建议都会很棒!
所以在页面的末尾说明了一种能够通过AuthSub api(旧的api)撤销此令牌的方法.
我使用新的api OAuth管理整个身份验证系统,当我尝试使用authsub步骤撤销令牌时,它只是向我发送"HTTP错误403:无效的AuthSub令牌".
这是我在python中的代码:
req = urllib2.Request("https://www.google.com/accounts/AuthSubRevokeToken",headers=
{'Authorization':'AuthSub token="mysuperloluselesstoken"'})
urllib2.open(req)
Run Code Online (Sandbox Code Playgroud)
有更简单的方法吗?我应该对secret_token + user_token + consumer做些什么吗?
如果我使用:lopen,Vim打开quickfix窗口,如果我:lcl在窗口上使用有错误(或quickfix窗口本身),它会关闭它.
我想要做的.vimrc是创建一个打开quickfix的地图,如下所示:
nnoremap <F2> :lopen 10<CR>
Run Code Online (Sandbox Code Playgroud)
但是当我F2再次按下它时会关闭它:lcl.
有没有办法知道quickfix窗口是否打开然后执行:lcl?
我正在将一些解析器从BeautifulSoup3迁移到BeautifulSoup4,我认为分析考虑到lxml是超快的并且它是我使用BS4的解析器,这将是一个好主意,这里是配置文件结果:
对于BS3:
43208 function calls (42654 primitive calls) in 0.103 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 <string>:2(<module>)
18 0.000 0.000 0.000 0.000 <string>:8(__new__)
1 0.000 0.000 0.072 0.072 <string>:9(parser)
32 0.000 0.000 0.000 0.000 BeautifulSoup.py:1012(__init__)
1 0.000 0.000 0.000 0.000 BeautifulSoup.py:1018(buildTagMap)
...
Run Code Online (Sandbox Code Playgroud)
对于使用lxml的BS4:
164440 function calls (163947 primitive calls) in 0.244 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.040 0.040 0.069 0.069 <string>:2(<module>)
18 0.000 …Run Code Online (Sandbox Code Playgroud)