所以它是一个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() …
我正在开发一个包含Offer模型的Django应用程序.一个Offer实例包含定价条件和指向一个产品定义.产品模型实际上是一个层次结构(我有一个Television模型,一个Camcorder模型等).所以我希望Offer模型包含一个指向任何产品的多态(或"通用")关联.
现在,我发现所有这些都是在ContentTypes应用程序中使用泛型关联.这可能会,但我正在寻找替代品,如果有的话.
谢谢你的帮助.
(每个答案一个解决方案请)
如果我查看Django的forms.py,as_p()调用_html_output(),哪个样式字段错误self.error_class()(虽然我找不到那个的定义).
但是,_html_output()不要样式non_field_errors(在代码中也称为top_errors).
如何设置非字段错误的样式?剪切并粘贴所有_html_output?
我正在使用Django 1.0.
我想将文件上传到仍在我的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路径是.
有没有人知道我如何解决(修复)此错误.
(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信号之外,还有其他方法可以更新会员资格吗?在此先感谢您的帮助!
更新: …
我正在使用带有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'. …
我一直在尝试,help(django.db.models.ImageField)并dir(django.db.models.ImageField)寻找如何ImageField从上传的图像创建一个对象.
request.FILES有图像InMemoryUploadedFile,但我正在尝试保存包含一个的模型ImageField,所以如何将其InMemoryUploadedFile转换为ImageField?
你怎么去寻找这种类型的东西?我怀疑这两个类有一个继承关系,但是我必须做很多事情dir()才能知道我是否要看.
使用以下命令:
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的代码.
我在django用gunicorn运行一个应用程序.我正在尝试使用selenium来测试我的应用程序,但遇到了问题.
我需要创建一个测试服务器,就像使用djangos一样LiveServerTestCase,可以使用gunicorn.
有没有人对我如何做到这一点有任何想法?
注意:也有人确认我LiveServerTestCase作为一个线程而不是一个进程执行
我使用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)
?
django ×9
python ×5
associations ×1
cpython ×1
dependencies ×1
django-admin ×1
django-cms ×1
django-forms ×1
gunicorn ×1
image ×1
membership ×1
pip ×1
polymorphism ×1
pypi ×1
reverse ×1
selenium ×1
styling ×1
upload ×1
url ×1