在CakePHP框架中,验证规则是模型的一个属性.也就是说,数据的来源并不重要:当你想在模型中编写它时,它必须通过验证.
而不是在symfony中,您为每个表单指定验证规则.由于每个模型可能有多个表单(并且表单可能涉及来自不同模型的数据),结果是某些模型的数据可能必须根据其来自的形式传递不同的过滤器.
我知道这可能偶尔会有用,而且如果你愿意,CakePHP确实提供了动态指定不同验证规则的方法.但这是例外,而不是规则.在我看来,设计另一种方式为错误打开了大门,您可以在其中更新验证规则,但忘记检查所有表单.
另一方面,我确信Fabien Potencier比我聪明,并且可能已经考虑过这个设计.所以我的问题是:
进行每个表单验证的理由是什么(通常不是例外)?
我说有一些Django模型
class Foo(models.Model):
class Meta:
abstract = True
class Bar(Foo)
pass
Run Code Online (Sandbox Code Playgroud)
我希望能够找到继承自Foo的所有模型,以便用它们执行任务.它应该很简单,就像
from django.db import models
from myapp.models import Foo
for model in models.get_models():
if issubclass(model, Foo):
do_something()
Run Code Online (Sandbox Code Playgroud)
唉,这不起作用,因为issubclass(Bar, Foo)报告False,可能是由于Django元类的内部工作初始化模型.
有没有办法检查Django模型是否是抽象Django模型的后代?
请不要建议鸭子打字作为解决方案.在这种情况下,我真的想知道是否存在子类关系.
我正在学习游戏!Scala是2,来自Django背景.在Django中,我习惯于通过在各种应用程序中划分项目来模块化项目,每个应用程序都有自己的模型,视图,控制器和资产.玩吧!允许项目的类似细分,或者必须将所有内容都放在app目录下?
编辑我已经得到了答案,但我将举例说明使用Django应用程序:
等等
我是Grails的新手,我继承了现有的应用程序.我有一个大文件message.properties,我想修剪,以删除不再使用的密钥.
在Django中,有一个命令makemessages遍历所有代码库并收集所有需要转换的字符串,将它们添加到消息文件中并注释掉不再存在的条目.Grails有类似的工具吗?如果有帮助,该项目基于1.3.9版本.
我玩了!我需要定期运行某些任务的应用程序.我可以使用Akka安排任务,但我不知道如何启动调度程序本身.我现在正在做的是拥有一个Scheduler对象并从中启动它Global.scala,就像这样
// app/jobs/Scheduler.scala
package jobs
import akka.util.duration._
import play.api.libs.concurrent.Akka
import play.api.Play.current
object Scheduler {
def start() {
Akka.system.scheduler.schedule(0 seconds, 1 minutes) {
SomeTask.start()
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后
// app/Global.scala
import play.api._
import jobs.Scheduler
object Global extends GlobalSettings {
override def onStart(app: Application) {
Scheduler.start()
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于,即使在开发模式和测试期间,任务也会运行,这很快就会非常烦人.
有没有办法只在生产模式下安排Akka的工作?
我玩了!项目,我想添加一些代码覆盖率信息.到目前为止,我已经尝试过JaCoCo和scct.前者存在基于字节码的问题,因此它似乎对Scala编译器自动生成的方法(例如copy或)的缺失测试发出警告canEqual.scct似乎是一个更好的选择,但无论如何我在两个测试期间都会遇到很多错误.
让我坚持使用scct.我基本上每次尝试连接数据库的测试都会出错.我的许多测试都将一些灯具加载到内存中的H2数据库中,然后进行一些断言.我的Global.scala包含
override def onStart(app: Application) {
SessionFactory.concreteFactory = Some(() => connection)
def connection() = {
Session.create(DB.getConnection()(app), new MySQLInnoDBAdapter)
}
}
Run Code Online (Sandbox Code Playgroud)
而测试通常被封闭在一个块中
class MySpec extends Specification {
def app = FakeApplication(additionalConfiguration = inMemoryDatabase())
"The models" should {
"be five" in running(app) {
Fixtures.load()
MyModels.all.size should be_==(5)
}
}
}
Run Code Online (Sandbox Code Playgroud)
该行running(app)允许我在连接到内存数据库的工作应用程序的上下文中运行测试,至少通常是这样.但是当我运行代码覆盖任务(例如scct)时coverage:doc,我会收到很多与连接数据库相关的错误.
更奇怪的是,至少有4种不同的错误,例如:
为什么在默认配置中启动测试能够连接到数据库,而在scct(或JaCoCo)的上下文中运行无法初始化缓存和数据库?
我是一名新的OCaml用户.我已经问了一个问题,以了解如何设置一个基本的OCaml项目,但我仍然有问题.跳到最后为TL; DR
例如,我正在努力学习Irmin.在Irmin的主页上,我看到我必须这样做
opam install irmin git cohttp
Run Code Online (Sandbox Code Playgroud)
这样做,我最终得到了Irmin版本0.8.3.不幸的是,我不能按照他们的例子,因为显然Irmin的版本是0.9.4,看起来API已经改变了.所以,我想开始一个只有Irmin 0.9.4依赖的干净项目
首先,我已经设置了一个opam开关
opam switch install playground -A 4.02.1
Run Code Online (Sandbox Code Playgroud)
一定要在干净的石板上工作.然后,我创建了一个_oasis看起来像这样的基本文件
OASISFormat: 0.4
Name: Playground
Version: 0.1.0
Synopsis: OCaml playground
Authors: Andrea Ferretti
License: Apache-2.0
BuildTools: ocamlbuild
BuildDepends:
irmin,
irmin.unix,
lwt,
lwt.unix
Run Code Online (Sandbox Code Playgroud)
然后我复制了Irmin主页中的例子example.ml.
open Lwt
open Irmin_unix
let store = Irmin.basic (module Irmin_git.FS) (module Irmin.Contents.String)
let config = Irmin_git.config ~root:"/tmp/irmin/test" ~bare:true ()
let prog =
Irmin.create store config task >>= fun t -> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在AJAX应用程序中实现一个不错的导航.我现在正在做的是以下内容:
第三点有点烦人:我宁愿每隔500毫秒没有超时检查哈希值,因为大部分时间它都会保持不变.
有没有更好的方法来管理这个?我想不出任何其他选择,但也许我错过了一些东西.
请不要指出我现成的解决方案,除非你知道它们是基于不同的机制.
我在中创建并使用了Mercurial存储库someFolder.现在我发现需要将文件跟踪一级.所以我需要的是创造someOtherFolder并someFolder进入它.这应该没问题.
此时我会有
someOtherFolder
someFolder
.hg
many other files
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉Mercurial扩大其范围并开始跟踪文件内部someOtherFolder?
我需要向Django Admin添加自定义视图.这应该类似于特定模型的标准ChangeList视图,但具有自定义结果集.(我需要显示所有具有某个日期或其他日期的模型比今天少,但这并不是真正相关的).
我可以这样做的一种方法是使用Admin queryset方法,比如
class CustomAdmin(admin.ModelAdmin):
...
def queryset(self, request):
qs = super(CustomAdmin, self).queryset(request)
if request.path == 'some-url':
today = date.today()
# Return a custom queryset
else:
return qs
Run Code Online (Sandbox Code Playgroud)
这确保......
问题是我不知道如何绑定some-url到标准的ChangeList视图.
scala ×3
django ×2
ajax ×1
akka ×1
cakephp ×1
django-admin ×1
grails ×1
javascript ×1
mercurial ×1
oasis ×1
ocaml ×1
ocamlbuild ×1
opam ×1
php ×1
python ×1
sbt ×1
scct ×1
symfony1 ×1
validation ×1