slug = models.SlugFiled(unique=True)
url(r'^(?P<slug>[-a-zA-Z0-9_]+)$', 'article_detail', name='article_detail'),
def article_detail(request, slug):
article = get_object_or_404(Article, slug=slug)
...
какой язык предпочтителен
У меня опыт небольшой. Python, Django, Flask, и по большей части - на oDesk. По моему мнению, самое что ни на есть важное - это: 1) выбор адекватных заказчиков, способных точно объяснить, что им надо, и желательно - технически компетентных; 2) Грамотное общение с ними. На всякое предложение о работе подписывается много людей. Чтобы выделиться среди этой толпы, необходимо потратить определённое время и силы. Внимательно прочесть предложение, подумать над ним и сформулировать в ответном письме вкратце:
- Ваш опыт, пусть и кратко, относительно данного проекта.
- Ваше представление о том, как следует реализовать этот проект (вкратце; но можно двумя словами, но желательно - обоснованно, упомянуть о том, что вот такую-то фичу вы реализуете с помощью MongoDB для пущей скорости). Пустословия и популизма не надо.
- Предполагаемые сроки. Я их обычно завышаю раза в два. Это позволяет решить задачу с запасом и устранить возможные баги, глюки и т.п. Гораздо лучше, чем обнаружить потом, что времени катастрофически не хватает.
Очень хорошо, если Вы сразу напишете ещё и некоторые рацпредложения. Вежливо и корректно, конечно.
Короче говоря, необходимо 1) найти те проекты, в которые стоит вникать и разбираться; 2) вникнуть и разобраться так, чтобы заказчик понял: Вы - компетентный специалист, работаете на совесть, сделаете обещанное и качественно. По крайней мере, очень постараетесь. Если с самого начала тон общения построен именно так, если Вы задали уровень и поддерживаете его, то в случае возможных проблем, неувязок, нестыковок, как правило, люди относятся с пониманием.
gem 'spray-paint'
gem 'lift'
gem 'devise' # аутентификация
gem 'haml-rails' # HAML вместо HTML
gem 'sass-rails' #sass вместо css
gem 'coffee-rails' #coffeescript вместо javascript
gem 'postmark-rails' # рассылка почты
gem 'russian' # потому что мы русские
gem 'paperclip' # для обработки картинок
gem 'delayed_job_active_record' # для отложенных задач
gem 'delayed_paperclip' , '2.4.5.2', :git => 'git://github.com/tommeier/delayed_paperclip', :branch => 'fix_312' # для отложенной обработки(ресайза) картинок
gem 'rufus-scheduler' # типа крон, только внутри рабочего rails приложения
gem 'twitter-bootstrap-rails' # чтобы сверстать все, включая админку
gem 'aws-sdk' # для выгрузки картинок на S3
gem 'quiet_assets' # чтобы логи не шумели