有没有办法在python中将两个装饰器组合成一个新的装饰器?
我意识到我可以将多个装饰器应用于一个函数,但我很好奇是否有一些简单的方法将两个组合成一个新的.
我已经开始研究一个包含大量未使用的遗留代码的项目.我想知道是否可以使用类似覆盖的工具与爬虫(如django-test-utils)一起使用来帮助我找到未被命中的代码,我们可以使用弃用警告进行标记.我意识到这样的事情不会万无一失,但认为它可能会有所帮助.
我已经尝试使用django调试服务器运行coverage.py但它无法正常工作(它似乎只是简介runserver机器而不是我的视图等).
我们一直在提高测试覆盖率,但还有一段路可走,我想可能会有更快的方法.
有什么想法吗?
谢谢.
我正在使用Django基于类的DetailView通用视图来查找要显示的对象.在某些情况下,我希望退出并发出HTTP重定向,而不是显示对象.我看不出我是怎么做的.它适用于用户点击我的应用中的对象但不使用规范网址的情况.因此,例如,在StackOverflow URL上采用以下形式:
http://stackoverflow.com/<content_type>/<pk>/<seo_friendly_slug>
Run Code Online (Sandbox Code Playgroud)
例如:
http://stackoverflow.com/questions/5661806/django-debug-toolbar-with-django-cms-and-django-1-3
Run Code Online (Sandbox Code Playgroud)
您实际上可以键入任何内容作为seo_friendly_slug部分,它会将您重定向到通过PK查找的对象的正确规范URL.
我希望在我的DetailView中也这样做.检索对象,检查它是否是规范URL,如果没有,则重定向到项目的get_absolute_url URL.
我无法在get_object中返回HttpResponseRedirect,因为它期望查找对象.我似乎无法从get_context_data返回它,因为它只是期望上下文数据.
也许我只需要写一个手动视图,但我想知道是否有人知道它是否可能?
谢谢!
卢多.
我刚刚开始使用Jenkins CI,并且有一个问题,我正在努力寻找文档或在线的答案.想知道是否有人可以提供一些建议?
我正在尝试使用它来自动部署我的Django项目的dev和stage分支,这些分支托管在Github组织存储库(即私有)上.目前我有一个用户"django",他可以通过Github部署密钥访问Github仓库.我的Jenkins用户无法访问回购.处理这个问题的最佳实践方法是什么 - 我应该为"jenkins"用户创建一个ssh部署密钥,还是应该让Jenkins作为我的"django"用户运行?我已经看到提及新闻组中的HUDSON_USER帖子,但我在文档中找不到对此的引用.
非常感谢!
卢多.
这让我有点生气,但看起来应该很简单.
我正在使用Django和Haystack并且有一个包含允许null的IntegerField的搜索索引.这基于Django中的相关模型,但我认为这不重要.例如:
class ThingIndex(indexes.ModelSearchIndex, indexes.Indexable):
group = indexes.IntegerField(model_attr='group__id', null=True)
class Meta:
model = Thing
Run Code Online (Sandbox Code Playgroud)
我有时希望我的Haystack查询返回此字段的None/Null项,所以我在搜索表单的__init__中进行过滤,但我无法获得查询来执行此操作.我尝试过的最明显的方法是:
self.searchqueryset.filter(group__isnull=True) # how to do it on a regular Django queryset
Run Code Online (Sandbox Code Playgroud)
但这不会返回任何记录.
现在我正在解决这个问题:
self.searchqueryset.exclude(group__in=range(1,100))
Run Code Online (Sandbox Code Playgroud)
哪个有效,但显然不是它应该做的方式:)
有人可以帮忙吗?
谢谢!
我正在尝试为我的Django User模型添加一些自定义逻辑,并尝试使用代理用户模型.
我有一个这样的模型:
from django.contrib.auth.models import User
class CustomUser(User):
def custom_method(self):
return 'Something'
class Meta:
proxy = True
Run Code Online (Sandbox Code Playgroud)
如果我省略了AUTH_USER_MODEL设置,那么我就可以运行Django shell并非常愉快地使用CustomUser,但是,我认为我可以在我的设置中设置AUTH_USER_MODEL,这样这就是我的应用程序中的默认用户(如当你使用完全自定义的用户模型时),但事实并非如此,当我尝试使用AUTH_USER_MODEL设置运行时,我得到:
TypeError: CustomUser cannot proxy the swapped model 'myapp.CustomUser'
Run Code Online (Sandbox Code Playgroud)
这可能吗?谢谢!
是否可以创建一个评估为布尔值的Django模板标记?
我可以这样做:
{% if my_custom_tag %}
..
{% else %}
..
{% endif %}
Run Code Online (Sandbox Code Playgroud)
目前我已将其写为as标签,其工作正常如下:
{% my_custom_tag as var_storing_result %}
Run Code Online (Sandbox Code Playgroud)
但我只是好奇,如果我能以另一种方式做到这一点,因为我认为如果我不必先将结果分配给变量就更好了.
谢谢!
我想知道人们对将模型直接连接到auth.User对象与用户的配置文件模型的想法是什么.
我正在存储我的用户在我的应用中添加的一些不同类型的模型.应用用户将通过这些型号的标准搜索其他用户.
一方面,我想如果我直接加入User,那么每次我需要获取用户的记录时我都不需要执行request.user.get_profile(),并且它不预先假定用户总是有一个个人资料(他们在我的应用程序在mo,但仍然).这使配置文件模型只包含用户的联系人详细信息.
另一方面,我想我在查找其他模型时很可能需要配置文件中的值(例如名称,位置).
毫无疑问,两者都有效,所以也许没关系,但我只是想知道其他人的想法是什么.
谢谢!
卢多.
我正在进入Puppet,并喜欢它,但我用一个小东西撞在墙上,我肯定必须比我做的更容易.
我希望在.bashrc用户中取消注释这一行:
#force_color_prompt=yes
Run Code Online (Sandbox Code Playgroud)
我一直在使用augeas做很多事情,但似乎这对它不起作用.
我注意到有一个file_line资源可用于确保文件中存在一行,但我需要将该行保留在同一位置.
我不希望.bashrc完全替换我自己的副本,尽管看到这种模式在Puppet中很流行,但它对我来说没有意义,因为我不想在升级之间维护我自己的版本.
在sed我用这个:
sed -i "s/#force_color_prompt=yes/force_color_prompt=yes/g" ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在尝试使用请求库在Python 3.4中为API调用创建HMAC-SHA512签名请求.我正在尝试关注文档,但是我遇到了这个错误:
AttributeError: '_hashlib.HASH' object has no attribute 'new'
Run Code Online (Sandbox Code Playgroud)
这是一些代码.它失败了hmac构造函数的错误.如果我尝试传递hashlib.md5()或完全省略摘要参数,那就没问题.
我不确定我之后是否正确签署了请求,因为我还没有那么远.我试图使用的服务的文档说我用我的秘密签署URL.我需要这个字节串才能使用.
import hmac
import hashlib
import requests
secret = b'mysecret'
url = b'http://someurl.com/something/'
signing = hmac.new(secret, url, hashlib.sha512())
headers = {'apisign': signing.digest()}
response = requests.get(url, headers=headers)
Run Code Online (Sandbox Code Playgroud)
任何指针赞赏.我找不到一个例子.谢谢!