<div class="gmail_quote">On Sat, Jul 25, 2009 at 1:05 PM, Colin Alston <span dir="ltr"><<a href="mailto:karnaugh@karnaugh.za.net">karnaugh@karnaugh.za.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><br><div class="gmail_quote">2009/7/25 Siegmund Führinger <span dir="ltr"><<a href="mailto:lists@0xx0.net" target="_blank">lists@0xx0.net</a>></span><div class="im"><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div>On Sat, Jul 25, 2009 at 10:06 AM, Colin Alston<<a href="mailto:karnaugh@karnaugh.za.net" target="_blank">karnaugh@karnaugh.za.net</a>> wrote:<br>
> On Sat, Jul 25, 2009 at 9:04 AM, Michał Pasternak <<a href="mailto:michal.dtz@gmail.com" target="_blank">michal.dtz@gmail.com</a>><br>
> wrote:<br>
>><br>
>> BTW, are there any URL dispatchers (like the one Django has) out there for<br>
>> Nevow?<br>
><br>
> I really and truly hope not.<br>
<br>
</div></div>why not? urls are very important and using child_XXX methods is<br>
sometimes not very convinient.</blockquote></div><div><br>Convenience at the cost of maintainability is not worth it. <br></div></div></blockquote><div><br> FWIW, you can subclass your page objects to create more generic ways to deal with REST like arguments, as well as child page dispatch. <br>
<br>This is what I do in Enamel: <br><br><a href="http://open.thusa.co.za/enamel/browser/trunk/enamel/pages.py#L68">http://open.thusa.co.za/enamel/browser/trunk/enamel/pages.py#L68</a><br><a href="http://open.thusa.co.za/enamel/browser/trunk/enamel/pages.py#L47">http://open.thusa.co.za/enamel/browser/trunk/enamel/pages.py#L47</a><br>
<br>Then you can mix the page object appropriately and do something like <br><br>class FooPage(rend.Page):<br> # Whatever...<br><br>class MyPage(pages.Standard):<br> childPages = {<br> 'Foo' : FooPage<br>
}<br><br> arbitraryArguments = True<br><br> def render_foo(self, c, d):<br> return c.tag[<br> "You passed ", self.arguments[0], "instead of 'Foo'"<br> ]<br><br>
HTH<br></div></div>