我有一个有一套的字段max_length.当我保存模型实例,并且字段的值大于时max_length,Django max_length在数据库级别强制执行该操作.(参见关于模型的Django文档:http://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.CharField.max_length)
但是,由于我使用的是Postgres,我收到如下的DatabaseError异常:
DatabaseError: value too long for type character varying(1000)
Run Code Online (Sandbox Code Playgroud)
我宁愿自动截断该值(所以我没有例外).现在,我可以手动执行此操作,但我真正想要的是让我的所有模型自动截断该值.(不一定是聪明的.只要在第999个角色切断它就可以了.)
我应该只编写一个从models.Model导入的自定义类,并覆盖save()方法,循环遍历每个_meta.field,检查max_length,然后截断?这似乎不够优雅,必须有更好的方法.
首先是一个声明:在为Mac编程方面,我是一个新手.但是我有一个需要与设备进行USB通信的任务,所以我想我会从基本的东西开始.
我从这里获取代码,构建它并从终端运行它.它启动并写入:
寻找符合供应商ID = 1351和产品ID = 8193的设备.
开始运行循环.
然而,在此之后,如果我插入和拔出USB设备(我尝试过:iPod,GPS,鼠标)屏幕上没有任何内容,尽管我理解的应该是每当我连接和断开设备时.
我究竟做错了什么?
提前致谢.
git是新手,所以希望这是一个简单的答案简单的问题.
我在GitHub上分叉了一个存储库.然后我使用公共repo URL在本地计算机上克隆它:git@github.com:samuelclay/django-mingus.git而不是私有repo URL : git://github.com/samuelclay/django-mingus.git.
我对代码进行了一些更改,提交了这些更改,并且为了将我的更改推送到我的分支仓库,我发布了:git remote add upstream git://github.com/samuelclay/django-mingus.git然后git push upstream,虽然这不会给我一个错误(它说的一切都达到了 -日期),肯定不会将我的更改推向GitHub.
有没有办法更改为私人repo URL?这甚至是必要的吗?
迭代查询集,如下所示:
class Book(models.Model):
# <snip some other stuff>
activity = models.PositiveIntegerField(default=0)
views = models.PositiveIntegerField(default=0)
def calculate_statistics():
self.activity = book.views * 4
book.save()
def cron_job_calculate_all_book_statistics():
for book in Book.objects.all():
book.calculate_statistics()
Run Code Online (Sandbox Code Playgroud)
...工作得很好。然而,这是一个 cron 任务。book.views发生这种情况时正在增加。如果book.views在此 cronjob 运行时进行修改,则会将其恢复。
现在,book.views它不会被 cronjob 修改,但会在.all()查询集调用期间被缓存。当 时book.save(),我有一种感觉它正在使用旧book.views值。
有没有办法确保只activity更新字段?或者,假设有 100,000 本书。这将需要相当长的时间才能运行。但是book.views将从查询集最初开始运行时开始。解决方案是仅使用 吗.iterator()?
更新:这实际上是我正在做的事情。如果您对如何使其内联工作有想法,那么我完全支持。
def calculate_statistics(self):
self.activity = self.views + self.hearts.count() * 2
# Can't do self.comments.count with a comments GenericRelation, because …Run Code Online (Sandbox Code Playgroud) 在 Swift 2.3 中,我可以动态调用使用NSSelectorFromString("methodWithArg:"). 在 Swift 3 中,我必须添加_一个命名参数以允许在没有名称的情况下调用它。
这还有可能吗?有关测试用例,请参阅此操场代码。
class Parent : NSObject {
func parentSelector(_ arg: String) {
print(" ---> Selected: \(arg)")
}
func test(_ selectorString: String, _ printString: String) {
let selector : Selector = NSSelectorFromString(selectorString)
// if self.responds(to: selector) {
self.perform(selector, with: printString)
// }
}
}
class Child : Parent {
func childSelector(_ arg: String) {
print(" ---> Child selected: \(arg)")
}
func namedChildSelector(arg: String) {
print(" ---> Child selected: \(arg)")
} …Run Code Online (Sandbox Code Playgroud)