[Twisted-web] Freeform/formless doesn't work with deferred properties?
Donovan Preston
twisted-web@twistedmatrix.com
Wed, 24 Dec 2003 10:38:49 -0500
On Dec 24, 2003, at 1:37 AM, Gavrie Philipson wrote:
>
> Christopher's workaround is fine, but doesn't solve the problem when
> using freeform.configure to render the form instead of my own form
> layout.
Yes. Supporting Deferred attribute values needs to happen.
> Anyway, I just did a 'cvs update' to get the latest HEAD, and guess
> what? Now my test script doesn't work at all!
> When I run twistd -ony /tmp/formpost-defer.tac (the same script that I
> previously posted to this list), I get a traceback (see below).
>
> Is this a bug? I did a clean install of the Quotient package and kept
> no old files around.
This is not a bug. However, it arises because of the really, really bad
semantics of __implements__. Basically, you subclassed Renderer and
didn't declare that your subclass implemented the interfaces which
Renderer declares it implements. This didn't matter before, so you
didn't notice that there was a problem. Now it matters, and boom.
When declaring that a subclass implements some interfaces, don't forget
to declare that it implements the super interfaces, too:
class Foo(Renderer):
__implements__ = IBar, Renderer.__implements__
Someone, can we please please switch to the better semantics for
declaring implementation used by either z3 now or PyProtocols?
dp