小编Lud*_*udo的帖子

我可以在Python中将两个装饰器组合成一个装饰器吗?

有没有办法在python中将两个装饰器组合成一个新的装饰器?

我意识到我可以将多个装饰器应用于一个函数,但我很好奇是否有一些简单的方法将两个组合成一个新的.

python decorator

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

找到要删除的未使用的Django代码

我已经开始研究一个包含大量未使用的遗留代码的项目.我想知道是否可以使用类似覆盖的工具与爬虫(如django-test-utils)一起使用来帮助我找到未被命中的代码,我们可以使用弃用警告进行标记.我意识到这样的事情不会万无一失,但认为它可能会有所帮助.

我已经尝试使用django调试服务器运行coverage.py但它无法正常工作(它似乎只是简介runserver机器而不是我的视图等).

我们一直在提高测试覆盖率,但还有一段路可走,我想可能会有更快的方法.

有什么想法吗?

谢谢.

python django code-coverage coverage.py

25
推荐指数
2
解决办法
2459
查看次数

从Django中的Generic View DetailView重定向

我正在使用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返回它,因为它只是期望上下文数据.

也许我只需要写一个手动视图,但我想知道是否有人知道它是否可能?

谢谢!

卢多.

generics django seo views

16
推荐指数
2
解决办法
5339
查看次数

部署为Jenkins用户还是允许Jenkins以不同用户身份运行?

我刚刚开始使用Jenkins CI,并且有一个问题,我正在努力寻找文档或在线的答案.想知道是否有人可以提供一些建议?

我正在尝试使用它来自动部署我的Django项目的dev和stage分支,这些分支托管在Github组织存储库(即私有)上.目前我有一个用户"django",他可以通过Github部署密钥访问Github仓库.我的Jenkins用户无法访问回购.处理这个问题的最佳实践方法是什么 - 我应该为"jenkins"用户创建一个ssh部署密钥,还是应该让Jenkins作为我的"django"用户运行?我已经看到提及新闻组中的HUDSON_USER帖子,但我在文档中找不到对此的引用.

非常感谢!

卢多.

django continuous-integration hudson jenkins

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

如何在IntegerField上过滤Haystack SearchQuerySet for None

这让我有点生气,但看起来应该很简单.

我正在使用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)

哪个有效,但显然不是它应该做的方式:)

有人可以帮忙吗?

谢谢!

python django django-haystack

9
推荐指数
2
解决办法
3807
查看次数

Django代理用户模型示例

我正在尝试为我的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)

这可能吗?谢谢!

python django

9
推荐指数
2
解决办法
1746
查看次数

Django TemplateTag评估为布尔值

是否可以创建一个评估为布尔值的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)

但我只是好奇,如果我能以另一种方式做到这一点,因为我认为如果我不必先将结果分配给变量就更好了.

谢谢!

django django-templates

8
推荐指数
3
解决办法
4961
查看次数

我应该对Django User或Profile模型进行ForeignKey吗?

我想知道人们对将模型直接连接到auth.User对象与用户的配置文件模型的想法是什么.

我正在存储我的用户在我的应用中添加的一些不同类型的模型.应用用户将通过这些型号的标准搜索其他用户.

一方面,我想如果我直接加入User,那么每次我需要获取用户的记录时我都不需要执行request.user.get_profile(),并且它不预先假定用户总是有一个个人资料(他们在我的应用程序在mo,但仍然).这使配置文件模型只包含用户的联系人详细信息.

另一方面,我想我在查找其他模型时很可能需要配置文件中的值(例如名称,位置).

毫无疑问,两者都有效,所以也许没关系,但我只是想知道其他人的想法是什么.

谢谢!

卢多.

django django-models

8
推荐指数
1
解决办法
532
查看次数

取消注释Puppet中的一行

我正在进入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)

有任何想法吗?

puppet

7
推荐指数
2
解决办法
7595
查看次数

HMAC在Python中签名请求

我正在尝试使用请求库在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)

任何指针赞赏.我找不到一个例子.谢谢!

python hmac hashlib python-requests

7
推荐指数
1
解决办法
5946
查看次数