С ASP.NET MVC я могу просто добавить действие в представление, и оно будет автоматически работать. Кажется, что Django заставляет меня писать каждый маршрут в таблице urls.py - есть ли способ сделать его map, например «/ foo/bar», до foo.views.bar
без явного упоминания об этом?Django autoroute
1
A
ответ
2
Я думаю, что причина Джанго заставляет вас писать все что-то вдоль этих линий: What's wrong with "magic"?
Во-вторых, карта вы предлагаете делает его трудно иметь дело с аргументами к функциям просмотра. Простейшим было бы обеспечить соблюдение конвенцией того, что все представления используют только аргументы GET
и POST
и в противном случае принимают некоторый стандартный набор аргументов (например, request
, template_name
).
Чтобы реализовать эту карту, которую вы хотите, вы можете перебирать свой модуль взглядов и генерировать объект шаблонов. Имейте в виду, что это действительно уродливый взлом и в значительной степени побеждает цель картографа. В urls.py
:
from django.conf.urls.defaults import *
import myapp.views
urlpatterns = patterns('myapp.views',
*map(lambda x: url(r'^myapp/%s/$' % x, x, name='myapp_%s' % x),
[k for k,v in myapp.views.__dict__.items() if callable(v)]))
Хм, я бы подумал, что это вписывается в СУХОЙ. Я попробую взломать. – Xodarap 2010-12-16 15:17:14