Daevaorn
У объекта должен быть идентификатор и он этот идентификатор знать. Уж так сложилось, что для веб-приложений этот идентификатор - урл. Поэтому вполне естественно, что модель может если надо построить и вернуть свой урл-идентификатор.
- Не факт что для каждой модели урл нужен для каждой модели, могут быть модели для которых урл совершенно бесмыслен.
в идеале мне кажется более правильным чтобы модель вообще не знала о урл, и о том как ее отображают, у нее есть идентификатор id и не нужно больше никаких к ней примешивать лишних данных - пусть модель просто хранит данные и все. Можно теоретически представить что модели нужно будет переиспользовать вообще не в вебе, к чему там урлы?
Daevaorn
В то же время ваш “тег” мало того, что шаблонной, так ещё абсолютно бессмылен как таковой
Что значит он бесмысле как таковой? в контексте модели он имеет вполне определенный смысл - отобразить ее содержимое.
Я точно так могу утвержлать что так уж сложилось что в вебе есть шаблоны в виде html, и каждый объект должен себя представлять, а так как аватар имеет прямую связь с профайлом юзера которого он предоставляет то почему бы его не прилепить к контексту объекта модели профайла, урл объекта точно так связан с моделью как и ее представление, в любом случае если информация связана только с моделью я не вижу ничего страшного чтобы вносить ее в модель.
Еще мне кажется это удобным просто потому что мне не нужно грузить отдельный тег через {% load avatar%}
и потом делать {% avatar profile %}, а просто делать через {{profile.draw_avatar}}.
/