Hi, Russ. Thanks for your reply.That makes sense.I notice that the configuration of my suggestion is complex. We need to know what the configuration to take the value.It is necessary to re-consider the implementation.
Advantage of my approach ------------------------------------- My approaches enables to reuse the condition of the method calling (as `predicate function`). For example, considering to header's value, session value or request.is_secure. By dispatch_config, we can reuse these conditions. Yes, in the example, the condition (kwargs.get('corn') == '1') is used only one time. And more -------------- Now the configuration takes one predicate function, however, thinking the further reusability, We can enable the configuration to get more than one function to call one method, like... dispatch_config = {'get': {'get_corn_1': (corn_predicate,), 'get_corn_1_secure': (corn_predicate, secure_predicate)} } It is hard to write all complex conditions in View.get method. and it can't be reuse. What do you say? 2013年1月2日水曜日 19時18分40秒 UTC+9 Russell Keith-Magee: > > Hi Hiroki, > > Thanks for the suggestion, but I'm afraid I don't see the benefit of doing > this as configuration, rather than something in the dispatched method > itself. Using your gist as an example -- why should this be something > defined in a custom dispatching configuration format, rather than simply > defining: > > def get(self, request, *args, **kwargs): > if kwargs.get('corn') == '1': > return HttpResponse('pony with corn') > return HttpResponse('pony') > > Using this approach, you can be explicit about what you want to do; a > developer reading the code requires no special knowledge to understand how > it works (it's just standard Python code); you don't need to wrap the > predicate up in to a function; it allows for more complex logic that can't > be expressed as a simple predicate; and at the end of the day, it's less > code as well. What's the advantage to your proposed approach? > > Yours, > Russ Magee %-) > > On Wed, Jan 2, 2013 at 6:09 PM, Hiroki Kiyohara > <hiro...@gmail.com<javascript:> > > wrote: > >> Hello, and Happy new year, everyone. >> Please listen to my proposal. >> >> I want django.views.generi.View.dispatch method to call methods in >> consideration of some config. >> For example, calling methods depending on the value of the request >> parameter. >> >> So I wrote this commit: >> https://github.com/hirokiky/django/commit/e3399495dca9a727568626f64e2fa276c2857da9 >> >> Description of this implementation >> ----------------------------------------------- >> View.dispatch_config takes a dictonary. Keys of dispatch_config are HTTP >> method name as target. >> Values are `predicate` dictionary. Key of `predicate` is method name >> which you want to call to. It's `receiver`. >> And the value of `predicate` is `predicate function`. When the function >> returns True, dispatch method calls `reciver`(target method). >> >> Since my English is not good, plead watch this Gist (for usage). >> https://gist.github.com/4433362 >> >> Solution I proposed may be not adequate. but I want dispatch method to >> be more flexible. >> >> Thank you. >> >> -------------------------- >> 清原弘貴 (Hiroki KIYOHARA) >> mail: hiro...@gmail.com <javascript:> >> http://hirokiky.org/ >> @hirokiky >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django developers" group. >> To post to this group, send email to >> django-d...@googlegroups.com<javascript:> >> . >> To unsubscribe from this group, send email to >> django-develop...@googlegroups.com <javascript:>. >> For more options, visit this group at >> http://groups.google.com/group/django-developers?hl=en. >> >> > -- You received this message because you are subscribed to the Google Groups "Django developers" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-developers/-/TT1tHEDkF0oJ. To post to this group, send email to django-developers@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.