小编And*_*rea的帖子

验证为表单的属性

在CakePHP框架中,验证规则是模型的一个属性.也就是说,数据的来源并不重要:当你想在模型中编写它时,它必须通过验证.

而不是在symfony中,您为每个表单指定验证规则.由于每个模型可能有多个表单(并且表单可能涉及来自不同模型的数据),结果是某些模型的数据可能必须根据其来自的形式传递不同的过滤器.

我知道这可能偶尔会有用,而且如果你愿意,CakePHP确实提供了动态指定不同验证规则的方法.但这是例外,而不是规则.在我看来,设计另一种方式为错误打开了大门,您可以在其中更新验证规则,但忘记检查所有表单.

另一方面,我确信Fabien Potencier比我聪明,并且可能已经考虑过这个设计.所以我的问题是:

进行每个表单验证的理由是什么(通常不是例外)?

php validation symfony1 cakephp

6
推荐指数
1
解决办法
249
查看次数

在Django模型中使用`issubclass()`

我说有一些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模型的后代?

请不要建议鸭子打字作为解决方案.在这种情况下,我真的想知道是否存在子类关系.

python django django-models

6
推荐指数
1
解决办法
629
查看次数

拆分游戏!2应用到模块中

我正在学习游戏!Scala是2,来自Django背景.在Django中,我习惯于通过在各种应用程序中划分项目来模块化项目,每个应用程序都有自己的模型,视图,控制器和资产.玩吧!允许项目的类似细分,或者必须将所有内容都放在app目录下?

编辑我已经得到了答案,但我将举例说明使用Django应用程序:

  • 管理员是一个单独的应用程序
  • 应用程序可用于定义国际化的抽象模型.需要国际化的实际模型可以从它们继承
  • 我创建了一个定义Facebook用户模型的应用程序,管理Facebook API,并向需要它的其他应用程序公开
  • 存在一个Django应用程序以编程方式生成站点地图
  • 另一个Django应用程序允许从存储在数据库中的规则创建robots.txt,以便可以从管理界面编辑机器人规则

等等

scala playframework

6
推荐指数
1
解决办法
1060
查看次数

Grails:如何收集所有邮件

我是Grails的新手,我继承了现有的应用程序.我有一个大文件message.properties,我想修剪,以删除不再使用的密钥.

在Django中,有一个命令makemessages遍历所有代码库并收集所有需要转换的字符串,将它们添加到消息文件中并注释掉不再存在的条目.Grails有类似的工具吗?如果有帮助,该项目基于1.3.9版本.

grails internationalization

6
推荐指数
1
解决办法
529
查看次数

在Play中开始Akka演员

我玩了!我需要定期运行某些任务的应用程序.我可以使用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的工作?

scala akka playframework-2.0

6
推荐指数
1
解决办法
1667
查看次数

播放代码覆盖率!项目

我玩了!项目,我想添加一些代码覆盖率信息.到目前为止,我已经尝试过JaCoCoscct.前者存在基于字节码的问题,因此它似乎对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种不同的错误,例如:

  • ObjectExistsException:缓存播放已存在
  • SQLException:尝试从已关闭的池获取连接
  • 配置错误[无法连接数据库[默认]]
  • 没有为jdbc找到合适的驱动程序:h2:mem:play-test - 410454547

为什么在默认配置中启动测试能够连接到数据库,而在scct(或JaCoCo)的上下文中运行无法初始化缓存和数据库?

scala code-coverage sbt playframework-2.0 scct

6
推荐指数
1
解决办法
2048
查看次数

简单的OCaml项目的基本Oasis或Opam文件

我是一名新的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)

ocaml ocamlbuild opam oasis

6
推荐指数
1
解决办法
422
查看次数

巧妙管理浏览器历史记录的方法

我正在尝试在AJAX应用程序中实现一个不错的导航.我现在正在做的是以下内容:

  • 每次用户单击AJAX链接时,都会执行相应的调用并更改散列.
  • 每当加载新页面时,我都会检查是否存在哈希并进行相应的AJAX调用以更新页面.这可确保书签按预期工作.
  • 每隔500毫秒,我检查一下哈希是否被更改并执行相应的AJAX调用.这会照顾用户按下后退/前进按钮,尽管有一个延迟.

第三点有点烦人:我宁愿每隔500毫秒没有超时检查哈希值,因为大部分时间它都会保持不变.

有没有更好的方法来管理这个?我想不出任何其他选择,但也许我错过了一些东西.

请不要指出我现成的解决方案,除非你知道它们是基于不同的机制.

javascript ajax browser-history

5
推荐指数
1
解决办法
1023
查看次数

移动Mercurial存储库

我在中创建并使用了Mercurial存储库someFolder.现在我发现需要将文件跟踪一级.所以我需要的是创造someOtherFoldersomeFolder进入它.这应该没问题.

此时我会有

someOtherFolder
    someFolder
        .hg
        many other files
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉Mercurial扩大其范围并开始跟踪文件内部someOtherFolder

mercurial

5
推荐指数
1
解决办法
1592
查看次数

Django Admin - 自定义更改列表视图

我需要向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视图.

django django-admin

5
推荐指数
1
解决办法
4379
查看次数