假设我有以下代码:
class MyModel(models.Model):
...
...
def save(self, *args, **kwargs):
# pre-save edits can go here...
super(MyModel, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
当我创建并保存模型 MyModel(blah, blah, blah) 时,输入字段之一可能是“无”。在覆盖的 save 方法中,目标是检查字段是否为 none,如果是,则将其更改为其他一些默认值。
输入字段是 args 还是 kwargs?并且覆盖 save() 甚至是正确的方法吗?
我在想这样的事情:
def save(self, *args, **kwargs):
if 'username' in args and args['username'] is None:
args['username'] = some_default_value
super(MyModel, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
那么输入参数在哪里?args* 或 **kwargs,谢谢。
我正在考虑将多处理添加到我的脚本之一以提高性能。
没什么特别的,main 方法有 1-2 个参数。
仅运行在终端上克隆的四个相同脚本与实际将多处理添加到 python 代码中有什么问题吗?
ex 为四个核心:
~$ script.py &
script.py &
script.py &
script.py;
Run Code Online (Sandbox Code Playgroud)
我读过 linux/unix 操作系统会自动在可用内核之间划分程序。
对不起,如果我上面提到的 ^ 东西是完全错误的。以上都没有正式学过,都是网上的东西。
model_one_list = Model1.objects.all()
model_two_list = Model2.objects.filter(...).order_by(..)
for model in model_one_list:
for model2 in model_two_list:
if model.field == model2.field:
another_list.append(model)
Run Code Online (Sandbox Code Playgroud)
django ORM在网上的一些提示特别提到不要做这个,因为它使用了太多的内存并且伤害了性能,文档建议尽可能地坚持使用ORM.
我试着用这个解决上面的问题:
Model1.objects.extra(
where={
'field = app_model2.field'
# Not sure if this works, I think the app_model2 may be wrong idk if i
# can access that
},
)
Run Code Online (Sandbox Code Playgroud)
但对于这样的事情,我不太清楚如何处理它.
也是一个有点相关的最后一个问题.如果我有一个需要按顺序排序的查询集,那么在没有迭代的情况下推荐的方法是什么?
Model1.objects.order_by('something').extra(select={'rank':
"how do i get the rank in mysql??? like while its
iterating, is this even possible"})
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
我依旧记得在过去的教程中看过这个.但是,我很难找到目前文档中的确切方式.
假设我们有一个名为Post的模型.该模型有一个名为timestamp的字段.但是,当我们将此模型发送到模板时,我们不关心时间戳.相反,我们想要更流行的"年龄"(创建X分钟/小时前),幸运的是,可以从时间戳推断出来.
而不是为时间戳创建一个全新的字段,而不是使用自定义模板标签,我们可以在将模型发送到模板之前暂时向模型添加一个字段吗?
防爆.
# views.py
# Is the below code right? do I need to save()?
posts = Posts.objects.filter(...).filter(...)[:X]
for post in posts:
# Post does not have an age field, we are creating one
# temporarily before sending it to the template
post.age = some_function(post.timestamp)
return render_to_response(template, {'posts' : posts}, etc...)
Run Code Online (Sandbox Code Playgroud)
谢谢.
对于html页面和特别是与新闻相关的页面,如果有一种解析出版日期的机制,那将非常有用并且非常有用.
不幸的是,互联网上的日期没有一套正则表达式/模式.CNN可以像MONTH DD,YYYY和HuffingtonPost一样发布它可以发布为MM/DD/YY,等等.
有没有人有任何策略比纯粹的正则表达式解析更好,从html页面中提取出版日期?
谢谢.
Python 3
import re
P = re.compile(r'[\s\t]+')
re.sub(P, ' ', '\xa0 haha')
' haha'
Run Code Online (Sandbox Code Playgroud)
Python 2
import re
P = re.compile(r'[\s\t]+')
re.sub(P, u' ', u'\xa0 haha')
u'\xa0 haha'
Run Code Online (Sandbox Code Playgroud)
我希望Python 3的行为,但在Python 2代码中.为什么正则表达式模式无法匹配像\xa0Python 2中的类似空间的代码点,但在Python 3中正确匹配这些代码点?
我很好奇如何使用java的字符串正则表达式有意义地用括号分割数学方程式.没有一个例子很难解释,一个在下面.
可以理解通用的解决方案模式,而不是仅适用于下面提供的示例的模式.
String s = "(5 + 6) + (2 - 18)";
// I want to split this string via the regex pattern of "+",
// (but only the non-nested ones)
// with the result being [(5 + 6), (2 - 18)]
s.split("\\+"); // Won't work, this will split via every plus.
Run Code Online (Sandbox Code Playgroud)
我主要想要的是第一级分割,我想要一个正则表达式检查以查看像"+"或" - "这样的符号是否以任何形式嵌套,如果是,不要拆分它,如果它不是'拆分它.嵌套可以是()或[]的形式.
谢谢.
网上有指南在Wordpress上激活Disqus,但似乎没有人遇到我遇到的特殊问题.以前安装Disqus我有WP评论,他们工作得很好.在激活Disqus插件,启用讨论/评论以及在任何地方打开评论后,评论框消失了,而不是单一的跟踪.
我的网站上甚至没有跟踪Disqus的痕迹.我不相信这是一个主题问题,因为在禁用主题后,仍然没有评论框.
有谁之前经历过这个吗?我可以在我的模板中查找/调用哪些方法可以调出WP项目?
谢谢.