我正在编写一个迁移,要求我用另一个字段(具有相同类型和约束)的现有数据填充字段.Django可以在一次操作中复制数据吗?当我需要复制数据时,目标列已存在.
在SQL中,我会写这样的东西:
UPDATE my_table SET column_b = column_a;
Run Code Online (Sandbox Code Playgroud)
编辑
当前的答案建议循环遍历模型实例,但这是我想要避免的.可以没有循环吗?
我有FileField
一个模型.对于模型的每个实例,我希望磁盘上的文件名保持更新,其中label
包含模型的另一个字段(让我们称之为)的值.
目前,我使用自定义upload_to()
函数,在首次上传新文件时生成正确的文件名.但是如果我更改了值label
,则在保存模型时不会更新文件名.
在save()
模型的功能中,我可以(a)从label
(也检查新名称与磁盘上的另一个现有文件不对应)计算新文件名,(b)重命名磁盘上的文件并(c)设置新的文件位置FileField
.但有没有更简单的方法呢?
为诸如此类的字段上传文件时:
file = FileField(upload_to='/path/')
Run Code Online (Sandbox Code Playgroud)
Django 使用 anInMemoryUploadedFile
或TemporaryUploadedFile
. 后者存储在磁盘上,可以通过temporary_file_path
属性访问其文件名。存储选择取决于文件大小。
如何覆盖此行为并始终作为TemporaryUploadedFile
此模型字段的a 上传?
我问这个的原因是因为我需要编写一个使用外部库的验证器,该库只能将文件路径作为输入,没有数据流。
有谁知道Python 库可以让您以智能方式将UTF-8 字符串转换为ISO-8859-1 编码?
\n\n所谓聪明,我的意思是用“-”左右替换“\xe2\x80\x93”等字符。对于许多确实无法想到等效字符的字符,请替换为“?” (就像encode(\'iso-8859-1\', errors=\'replace\')
那样)。
我有一个QLabel
正好在下面的a QLineEdit
具有相同的大小和对齐属性:
QLineEdit *lineEdit = new QLineEdit("999");
lineEdit->setFixedWidth(100);
lineEdit->setAlignment(Qt::AlignRight);
//
QLabel *label = new QLabel("999");
label->setFixedWidth(100);
label->setAlignment(Qt::AlignRight);
//
QLayout *layout = new QVBoxLayout;
layout->addWidget(lineEdit);
layout->addWidget(label);
Run Code Online (Sandbox Code Playgroud)
以下是渲染方式:
如何让底部的文本与文本label
完全正确对齐lineEdit
?
全额奖励,如果你发现在所有平台上工作,而且也适用时的字体大小都在不同的解决方案lineEdit
和label
.
我正在尝试修改存储为文本文件的电子邮件.我首先导入这样的消息:
import email
f = open('filename')
msg = email.message_from_file(f)
Run Code Online (Sandbox Code Playgroud)
然后,我使用电子邮件模块的功能进行了我想要的所有修改.
最后一步是将Message对象(msg)保存在文件中.执行此操作的代码是什么?似乎没有像"message_to_file()"这样的简单函数......
非常感谢.
我正在模板中渲染一个formset.如果formset没有元素,我怎么能写一个条件,使页面显示句子"Nothing to show"?
以下不起作用:
{% if formset %}
{{ formset }}
{% else %}
<p>Nothing to show</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud) 我正在解析一个文件的行,我要删除"{%"和"%}"之间的任何内容,因为它们代表注释.
更具体地说,一个字符串如
bla{% comment %} bli {% useless %}blu
Run Code Online (Sandbox Code Playgroud)
应该回来
bla bli blu
Run Code Online (Sandbox Code Playgroud)
我尝试使用正则表达式,删除匹配的所有内容{% .* %}
:
import re
s = 'bla{% comment %} bli {% useless %}blu'
regexp = '{% .* %}'
comments = re.findall(regexp, s)
for comment in comments:
s = s.replace(comment, '')
print s
Run Code Online (Sandbox Code Playgroud)
这给予blablu
和删除bli
.虽然我理解为什么它会像那样,但我不知道该怎么做blabliblu
.