小编sed*_*nym的帖子

使用unittest.mock.patch时,为什么默认情况下autospec不为True?

使用mock修补函数时,可以选择将autospec指定为True:

如果设置autospec = True,则使用要替换的对象的规范创建模拟.mock的所有属性也将具有要替换的对象的相应属性的规范.被模拟的方法和函数将检查其参数,如果使用错误的签名调用它们将引发TypeError.

(http://www.voidspace.org.uk/python/mock/patch.html)

我想知道为什么这不是默认行为?当然,我们几乎总是希望将错误的参数传递给我们修补的任何函数?

python unit-testing mocking

27
推荐指数
3
解决办法
9599
查看次数

如何以编程方式将内容添加到Wagtail StreamField?

我正在从旧网站进行迁移,我需要以编程方式将原始html添加到StreamFieldWagtail页面上.我该怎么做?

django wagtail

12
推荐指数
1
解决办法
1886
查看次数

get_bucket()为我没有通过Boto创建的S3存储桶提供"错误请求"

我正在使用Boto尝试在Amazon S3中获取一个存储桶,但是当我对某些存储桶使用get_bucket()时它返回Bad Request.我开始怀疑这是否是Boto的错误,因为我可以使用get_all_buckets()来获取存储桶.

>>> from boto.s3.connection import S3Connection
>>> conn = S3Connection(S3_ACCESS_KEY, S3_SECRET_KEY)
>>> buckets = conn.get_all_buckets()
>>> buckets
[<Bucket: mysite-backups>]
>>> buckets[0]
<Bucket: mysite-backups>
>>> conn.get_bucket('mysite-backups')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/path/to/virtualenv/lib/python2.7/site-packages/boto/s3/connection.py", line 502, in get_bucket
    return self.head_bucket(bucket_name, headers=headers)
  File "/path/to/virtualenv/lib/python2.7/site-packages/boto/s3/connection.py", line 549, in head_bucket
    response.status, response.reason, body)
S3ResponseError: S3ResponseError: 400 Bad Request

>>> conn.create_bucket('mysite_mybucket')
<Bucket: mysite_mybucket>
>>> conn.get_bucket('mysite_mybucket')
<Bucket: mysite_mybucket>
Run Code Online (Sandbox Code Playgroud)

这似乎是一个问题,即使我使用相同的用户帐户登录,因为我正在使用访问信用卡并在AWS控制台中创建它.

知道为什么会这样吗?

python amazon-s3 boto

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

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

在mod-wsgi上使用Django 1.7进行代码更改监控失灵

这是我在mod_wsgi中运行Django 1.7的所有网站上遇到的问题.该问题的核心是,如果在本地开发时,我在代码库中引入致命错误,然后随后对其进行更正,则代码监视脚本不会检测到更正.

我使用Graham Dumpleton的monitor.py脚本来检测我在本地开发时对代码库的更改(我使用apache而不是Django开发服务器).

它总是用于Django <= 1.6,但在Django 1.7中我收到以下错误:

File "/home/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
    django.setup()
File "/home/me/virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
File "/home/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/apps/registry.py", line 78, in populate
    raise RuntimeError("populate() isn't reentrant")
RuntimeError: populate() isn't reentrant
Run Code Online (Sandbox Code Playgroud)

令人恼火的是,如果我更正错误,monitor.py不会检测到更改,所以我必须重新启动apache,或者触摸已经加载的另一个文件(例如设置文件).

我认为这是因为"重载代码只监视导入的文件(也称为sys.modules)"(源代码).因此,由于未成功导入错误的文件,monitor.py无法重新启动该进程.

apache django mod-wsgi

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

在python中,如何从日期和时间创建时区感知日期时间?

在Python中,假设我的日期为2016年12月25日.如何在该日期创建一个时区感知日期时间?

如果它与Django的时区处理兼容,则奖励积分.

python django timezone

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

如何在Webfaction上已有的postgres数据库上启用GeoDjango?

我在Webfaction共享主机上运行Django 1.8.4,我需要启用GeoDjango.这些是我采取的步骤:

  1. 根据文档将我的项目转换为使用GeoDjango.
  2. 在Webfaction UI中,将PostGIS扩展添加到我的数据库中.
  3. ./manage.py migrate.这是错误:

    django.db.utils.OperationalError: could not open extension control file "/usr/pgsql-9.1/share/extension/postgis.control": No such file or `directory
    
    Run Code Online (Sandbox Code Playgroud)

django postgresql postgis geodjango webfaction

6
推荐指数
1
解决办法
1275
查看次数

如何使用 Django-Import-Export 导入数据?

django-import-export的文档在如何配置管理员从电子表格导入方面有点薄弱。有人有完整的例子吗?

django django-import-export

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

如何在没有循环依赖的情况下向另一个应用程序的 ModelAdmin 添加内联?

假设我有两个模型,在不同的应用程序中。应用二知道应用一,但不知道相反:

# one/models.py

from django.db import models

class One(models.Model):
    pass


# two/models.py

from django.db import models
from one.models import One

class Two(models.Model):
    one = models.ForeignKey(One)
Run Code Online (Sandbox Code Playgroud)

我也在One管理站点注册:

# one/admin.py

from django.contrib import admin
from .models import One

admin.site.register(One)
Run Code Online (Sandbox Code Playgroud)

如何TwoOne的管理页面上注册为 Inline ,而不在两个应用程序之间引入循环依赖?

django encapsulation django-admin

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

如何覆盖Python中的修饰方法?

假设我想扩展以下Python类,其中包括一个我不太了解的装饰器:

from somewhere import some_decorator

class One(object):
    @some_decorator
    def some_method(self):
        do_something()
Run Code Online (Sandbox Code Playgroud)

我应该装饰覆盖的方法吗?换句话说,我可以安全地执行以下操作:

class Two(One):
    def some_method(self):
        super(Two, self).some_method()
Run Code Online (Sandbox Code Playgroud)

还是我需要做:

class Two(One):
    @some_decorator
    def some_method(self):
        super(Two, self).some_method()
Run Code Online (Sandbox Code Playgroud)

python oop

3
推荐指数
2
解决办法
237
查看次数

如何使用sorl-thumbnail设置固定宽度,最大高度(在Django中)

如果可以在django模板中使用sorl-thumbnail创建以下缩略图,我无法解决:

  • 固定宽度,必要时放大.
  • 最大高度.如果调整大小的图像比我不介意的最大高度短.
  • 我不想在宽度方面裁剪图像,但我不介意在高度方面裁剪它.

如果我能分两步完成,我会:

  • 将图像大小调整为x宽度,允许升级.
  • 裁剪图像以适合矩形x x.

我能做的最好的就是这样,宽度看起来不错但不会裁剪高度.

{% thumbnail banner "1010" crop="center" as im %}<img id='banner' src='{{ im.url }}'/>{% endthumbnail %}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

django-templates sorl-thumbnail

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

在 Django Rest Framework 中,如何处理无效的过滤参数?

我想ListAPIView使用此处描述的过滤技术来限制 a 返回的查询集。

问题是,如何处理无效参数?引发 ValidationError 仅适用于序列化程序,不适用于 ViewSet。我想让用户知道请求无效,而不是默默地失败。

例如:

class PurchaseList(generics.ListAPIView):
    serializer_class = PurchaseSerializer

    def get_queryset(self):
        queryset = Purchase.objects.all()
        username = self.request.query_params.get('username', None)
        if username is not None:
              try:
                  user = User.objects.get(username=username)
              except User.DoesNotExist:
                  # How do I handle this invalid parameter?
              else:
                  queryset = queryset.filter(purchaser=user)
        return queryset
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

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