Есть ли подходящие леса для Джанго?(А-ля Руби на Рельсах) - PullRequest
26 голосов
/ 23 марта 2011

Есть ли подходящие строительные леса для Django?

Возможно, это только что выпущенная версия 1.3, но я пока не нашел ее.

Ответы [ 6 ]

18 голосов
/ 18 апреля 2011

Я посмотрел и еще не нашел для Django что-то похожее на команду Rails Generate.У Джанго немного другая философия.Он дает вам инструменты, чтобы упростить процесс, но на самом деле не делает это за вас (кроме интерфейса администратора).В общем, я думаю, что все в порядке.Когда я использую леса рельсов, я не могу часто хранить большую часть автоматически сгенерированного материала.Когда я это сделаю, интерфейс администратора django, вероятно, также сработает и даст мне больше функциональности.

Вместо этого я предлагаю прочитать шаг 4 по учебнику Django, который вводит общие представления,а затем глава 7 книги Джанго , в которой вводятся формы.Вы должны быть терпеливы в главе 7, потому что авторы думают, что вы хотите узнать мельчайшие детали трудного пути, прежде чем они научат вас легкому пути.(попробуйте поискать на странице фразу django.forms)

В конце концов, объем работы, которую вы должны выполнить между рельсами и django, эквивалентен, и, возможно, немного меньше с Django.Однако у вас нет одной команды, чтобы автоматически дать вам стандартный код для использования в качестве основы.

8 голосов
/ 01 августа 2011

Так что в Django 1.3 по-прежнему не хватает функциональности «скаффолд». Нехорошо. Что лучше в скаффолде, так это то, что он позволяет разработчику немедленно начать проект, не вызывая все синтаксисы 'models', 'urls' и 'views'.

Посмотрите на этот пример, давайте начнем новый проект и приложение:

$django-admin startproject mysite
$python manage.py startapp blog

и теперь нам нужно вручную «НАЧАТЬ» все, из почти пустых файлов. НО было бы очень удобно делать это таким образом (как в рельсах)

$python manage.py scaffold app:blog model:Post title:string content:text 

Это должно дать нам: models.py

class Post(models.Model):
    title    = models.CharField
    content  = models.TextField

views.py

def index(request):
    posts = Post.objects.all().order_by('-id')
    return render_to_response('blog/index.html', {'posts': posts})

и каким-то образом обновлять urls.py, ... или нет, это более сложно, но менее необходимо.

Это не должно быть сложно реализовать в будущих выпусках Django. Я бы сделал это, если бы у меня было достаточно знаний и опыта в Джанго. К сожалению, я не делаю много проектов Django, и поэтому мне нужна эта функциональность.

7 голосов
/ 29 июня 2012

Это ближе к рельсовым лесам: https://github.com/modocache/django-generate-scaffold

1 голос
/ 17 августа 2013

Я только что использовал команду помощника / управления скаффолдом, предоставляемую Django Common , и, похоже, он установил приличный кусок стандартного кода. Варианты ограничены, но достаточно приличны.

Я пролистал код, и большая часть его выглядит нормально. Мне нужно было сделать небольшую уборку, когда леса были «возведены», хотя:

  • Отдельные import строки были добавлены для каждой созданной модели. Слил их.
  • Шаблоны по-прежнему содержали старые (1.4) url спецификации тегов шаблонов. Изменили их, чтобы отразить новые (1.5) спецификации, то есть заключили второй параметр в одинарные кавычки в каждом из созданных html-файлов для каждой из моделей.
  • Обновлен основной urls.py с include для модуля app.urls.
  • Я использую нестандартную настройку settings.py - три отдельных файла common.py, dev.py и prod.py для моей настройки. Пришлось добавить приложение вручную в установленные приложения. YMMV.

(отредактирую этот список, если что-нибудь еще подумаю)

При этом, глядя на количество шаблонного кода, который мне НЕ нужно было писать, я бы сказал, что он очень хорошо работает!

На данный момент репо выглядит довольно ухоженным - последний коммит был 18 дней назад на момент написания этого ответа. Вероятно, я скоро отправлю запрос на извлечение или подниму вопрос о проблемах, с которыми я столкнулся в своем репо.

1 голос
/ 15 марта 2012

Я нашел это: https://github.com/madhusudancs/django-groundwork

Похоже, это именно то, что вы ищете. Надеюсь, это поможет.

0 голосов
/ 03 мая 2013

Вы можете проверить django-addview .Он предназначен для выполнения скучных, обыденных шагов, необходимых для автоматического добавления нового представления с красивым графическим интерфейсом ncurses.Что он делает для вас:

  • Расширение CBV или функция записи
  • Заполнение параметров CBV
  • Создание шаблона в указанном месте
  • Редактирование URL.py для вас
  • Заботится обо всем импорте

Полное раскрытие: я написал это.

...