Ärger mit Generic Views von Django


Coding , ,



Django ist ja eines der besten Frameworks für Python um schnell Webanwendungen zu realisieren. Allerdings ist es leider noch nicht so ausgereift wie z.B. Ruby on Rails. Die Generic Views von Django sind zwar sehr hilfreich, allerdings nicht ganz konsequent umgesetzt.

So gibt es bei den Views create_object, update_object und delete_object die Möglichkeit login_required zu übergeben, aber bei anderen Views wie z.B. direct_to_template nicht. Das ist ziemlich ärgerlich, da es hier genauso Sinn machen würde.

Allerdings gibt es einen kleinen Workaround…

from django.contrib.auth.decorators import login_required 
from django.views.generic.simple import direct_to_template
 
urlpatterns = patterns('',
	(r'^meineurl/$',login_required(direct_to_template),
		{'template':'welcome.html'}),
...

Dadurch erhält man das gleiche Ergebnis, wie wenn man login_required als Argument dem View übergibt.



Kommentar hinzufügen