小编vis*_*ell的帖子

'{0}'.format()比使用IPython%timeit的str()和'{}'.format()更快,否则使用纯Python

所以它是一个CPython的东西,不太确定它与其他实现有相同的行为.

'{0}'.format()str()和更快'{}'.format().我发布了Python 3.5.2的结果,但是,我尝试使用Python 2.7.12并且趋势是相同的.

%timeit q=['{0}'.format(i) for i in range(100, 100000, 100)]
%timeit q=[str(i) for i in range(100, 100000, 100)]
%timeit q=['{}'.format(i) for i in range(100, 100000, 100)]

1000 loops, best of 3: 231 µs per loop
1000 loops, best of 3: 298 µs per loop
1000 loops, best of 3: 434 µs per loop
Run Code Online (Sandbox Code Playgroud)

文档object.__str__(self)

str(object)内置函数调用format()print()计算对象的"非正式"或可打印的字符串表示形式.

所以,str()format() …

python cpython

14
推荐指数
1
解决办法
1357
查看次数

如何在Django中定义模型之间的多态关系?

我正在开发一个包含Offer模型的Django应用程序.一个Offer实例包含定价条件和指向一个产品定义.产品模型实际上是一个层次结构(我有一个Television模型,一个Camcorder模型等).所以我希望Offer模型包含一个指向任何产品的多态(或"通用")关联.

现在,我发现所有这些都是ContentTypes应用程序中使用泛型关联.这可能会,但我正在寻找替代品,如果有的话.

谢谢你的帮助.

(每个答案一个解决方案请)

django polymorphism associations django-models

13
推荐指数
2
解决办法
7737
查看次数

在表单上设置django非字段错误

如果我查看Django的forms.py,as_p()调用_html_output(),哪个样式字段错误self.error_class()(虽然我找不到那个的定义).

但是,_html_output()不要样式non_field_errors(在代码中也称为top_errors).

如何设置非字段错误的样式?剪切并粘贴所有_html_output?

我正在使用Django 1.0.

django styling django-forms

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

Django上传文件不在MEDIA_ROOT路径中给我SuspiciousOperation错误

我想将文件上传到仍在我的django项目中的MEDIA_ROOT路径,但是在我的路径中.

当我尝试这样做时,我得到一个SuspiciousOperation错误.

以下是我的设置文件中定义的路径:

MEDIA_ROOT = os.path.join(os.path.dirname( __file__ ), 'static_serve')
UPLOAD_DIR = os.path.join(os.path.dirname( __file__ ), 'uploads')
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我不希望我上传的文件可以通过浏览器访问,我的MEDIA_ROOT路径是.

有没有人知道我如何解决(修复)此错误.

python django django-uploads

13
推荐指数
1
解决办法
6451
查看次数

Django - 如何通过post_save信号保存m2m数据?

(Django 1.1)我有一个项目模型,使用m2m字段跟踪其成员.它看起来像这样:

class Project(models.Model):
    members = models.ManyToManyField(User)
    sales_rep = models.ForeignKey(User)
    sales_mgr = models.ForeignKey(User)
    project_mgr = models.ForeignKey(User)
    ... (more FK user fields) ...
Run Code Online (Sandbox Code Playgroud)

当创建项目时,选择sales_rep,sales_mgr,project_mgr,等Users的加入成员,使其更容易跟踪项目的权限.到目前为止,这种方法运作良好.

我现在要处理的问题是当User通过管理员更新其中一个FK字段时如何更新项目的成员资格.我已经尝试过各种解决方案来解决这个问题,但最干净的方法似乎是post_save如下信号:

def update_members(instance, created, **kwargs):
    """
    Signal to update project members
    """
    if not created: #Created projects are handled differently
        instance.members.clear()

        members_list = []
        if instance.sales_rep:
            members_list.append(instance.sales_rep)
        if instance.sales_mgr:
            members_list.append(instance.sales_mgr)
        if instance.project_mgr:
            members_list.append(instance.project_mgr)

        for m in members_list:
            instance.members.add(m)
signals.post_save.connect(update_members, sender=Project)  
Run Code Online (Sandbox Code Playgroud)

但是,Project即使我通过管理员更改其中一个字段,仍然具有相同的成员!我已经成功使用我自己的视图在其他项目中更新成员m2m字段,但我从来没有让它与管理员一起玩得很好.

除了post_save信号之外,还有其他方法可以更新会员资格吗?在此先感谢您的帮助!

更新: …

membership django django-admin

12
推荐指数
2
解决办法
4660
查看次数

django-cms:apphooks使用的url不能与reverse()或{%url%}一起使用

我正在使用带有apphooks的django-cms来显示书籍详细信息.我需要带有app hook的页面来接受一个slug,它指定要显示的书.

我创建了一个名为"books"的页面,并添加了apphook'BookDetailApp'.

这是我的books.cms_app文件的样子:

class BooksApp (CMSApp):
    name = _('Book Detail Page Application')
    urls = ['books.urls']

apphook_pool.register(BooksApp)
Run Code Online (Sandbox Code Playgroud)

这是我的books.urls的样子:

urlpatterns = patterns('',
    url(r'^(?P<slug>[\w\-]+)?', BookDetailView.as_view(), name='book_detail'),
)
Run Code Online (Sandbox Code Playgroud)

这是我的books.views文件的样子:

class BookDetailView (DetailView):
    model = Book
    template_name = 'layouts/book-detail.html'
    context_object_name = 'book'
Run Code Online (Sandbox Code Playgroud)

当我直接进入预订详细信息页面时,一切正常.所以http://localhost:8000/books/the-book-slug/我的工作方式正是如此.

问题是我需要能够从主页上的促销链接到特定的书籍详细信息页面,并且没有任何预期的方法对我有用.

使用django-cms中的page_url模板标签不起作用,因为它只接受一个参数,所以我无法提供确定要显示哪本书所需的slug:

<a href="{% page_url 'book_detail' %}">go</a>
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,这只重定向会http://localhost:8000/books/引发错误,因为未包含所需的slug.

所以我的下一个选择是使用url模板标签或get_absolute_url()在模型上定义一个函数.这些选项都不起作用:

<a href="{% url book_detail book.slug %}">go</a>

def get_absolute_url(self):
    return reverse('book_detail', args=[self.slug])
Run Code Online (Sandbox Code Playgroud)

这两者都会导致NoReverseMatch: Reverse for 'book_detail' not found错误.

如果我将books.urls conf包含在我的主url conf中,那么它可以工作.因此,如果网址只被cms apphook使用,它似乎无法被django逆转.

在我的主网址中包含books.urls似乎是一个肮脏的解决方案,我绝对不想硬编码模板或get_absolute_url函数中的网址.这些解决方案似乎都不是'pythonesque'. …

django url reverse content-management-system django-cms

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

Django - 你如何将InMemoryUploadedFile转换为ImageField的FieldFile?

我一直在尝试,help(django.db.models.ImageField)dir(django.db.models.ImageField)寻找如何ImageField从上传的图像创建一个对象.

request.FILES有图像InMemoryUploadedFile,但我正在尝试保存包含一个的模型ImageField,所以如何将其InMemoryUploadedFile转换为ImageField

你怎么去寻找这种类型的东西?我怀疑这两个类有一个继承关系,但是我必须做很多事情dir()才能知道我是否要看.

django upload image django-models

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

有可能欺骗pip install --find-links使用下载的sdist进行 - 可编辑的要求吗?

使用以下命令:

pip install -r requirements.txt -d sdists/
Run Code Online (Sandbox Code Playgroud)

您可以轻松创建与项目一起分发的需求存档.如果您的要求如下所示,这非常有用:

Django==1.3.1
django-tagging==0.3.1
django-robots==0.6.1
Run Code Online (Sandbox Code Playgroud)

然后,您可以在不触及PyPI的情况下安装这些要求,如下所示:

pip install -r requirements.txt --find-links sdists/ --no-index
Run Code Online (Sandbox Code Playgroud)

是否可以使用相同的方法来--editable满足要求?例如:

-e hg+https://bitbucket.org/ubernostrum/django-contact-form/@1d3791fa4dfb#egg=django-contact-form
Run Code Online (Sandbox Code Playgroud)

据我所知,pip install -d愉快地下载可编辑的需求并为您创建一个sdist,但pip install --find-links没有任何方法可以将下载的sdist与您的需求文件中的关联行匹配,因此它忽略了下载的sdist并继续检查像往常一样来自VCS的代码.

python django dependencies pip pypi

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

使用gunicorn时如何设置django测试服务器?

我在django用gunicorn运行一个应用程序.我正在尝试使用selenium来测试我的应用程序,但遇到了问题.

我需要创建一个测试服务器,就像使用djangos一样LiveServerTestCase,可以使用gunicorn.

有没有人对我如何做到这一点有任何想法?

注意:也有人确认我LiveServerTestCase作为一个线程而不是一个进程执行

python django selenium gunicorn

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

django-registration app和Django 1.5自定义用户模型

我使用django-registration app和Django 1.5.如何创建(django中的新)自定义用户模型并在注册期间保存此数据(请注意我使用的是django-registration):

class CustomProfile(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=255)
    bank = models.CharField(max_length=255)
    address = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)

python django django-registration

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