Есть ли подходящие леса для Django?
Это может быть в недавно выпущенной версии 1.3, но я еще не нашел ее.
Есть ли подходящие леса для Django?
Это может быть в недавно выпущенной версии 1.3, но я еще не нашел ее.
Я посмотрел и еще не нашел что-то для Django, как команда Rails Generate. У Django есть немного другая философия. Это дает вам инструменты, позволяющие делать вещи легко, но на самом деле не делает это за вас (кроме интерфейса администратора). По большому счету, я думаю, что все в порядке. Когда я использую строительные леса для рельсов, я не могу часто сохранять большую часть автогенерированных материалов. Когда я это сделаю, интерфейс администратора django, вероятно, также сработает и предоставит мне больше возможностей.
Вместо этого я предлагаю прочитать шаг 4 курса Django, в котором представлены общие представления, а затем глава 7 книги Джанго, в которой представлены формы. Вы должны быть терпеливыми в главе 7, потому что авторы думают, что вы хотите узнать мельчайшие детали о трудном пути, прежде чем они научат вас легкому пути. (попробуйте найти страницу для фразы django.forms)
В конце концов, объем работы, которую вы должны делать между рельсами и джанго, эквивалентен и, возможно, немного меньше с Django. Однако у вас нет одной команды, которая автоматически дает вам шаблонный код для использования в качестве основы.
Таким образом, Django 1.3 все еще не имеет функциональности "scaffold". Нехорошо. Что лучше всего в эшафоте, так это то, что он позволяет разработчику немедленно начать с проекта, не напомнив все синтаксисы "модели", "URL-адреса" и "мнения".
Посмотрите на этот пример, давайте начнем новый проект и приложение:
$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. К сожалению, я не занимаюсь многими проектами Django и поэтому мне нужна эта функциональность.
Это ближе к рельсовым лесам: https://github.com/modocache/django-generate-scaffold
Я нашел это: https://github.com/madhusudancs/django-groundwork
Похоже, это именно то, что вы ищете. Надеюсь, что это поможет.
Я просто использовал команду помощника/управления scaffold, предоставленную Django Common, и, похоже, она установила приличный кусок кода шаблона. Варианты ограничены, но достаточно приличные.
Я просмотрел код, и большая часть его выглядит нормально. Мне нужно было немного почистить, как только строительные леса были "установлены":
import
. Слияние их.url
спецификации тега шаблона. Модифицировали их, чтобы отразить новые (1.5) спецификации, т.е. Заключили второй параметр в одинарные кавычки в каждый из созданных html файлов для каждой из моделей.urls.py
с помощью include
для модуля app.urls
.common.py
, dev.py
и prod.py
для моей установки. Пришлось добавить приложение вручную в установленные приложения. YMMV.(Редактирует этот список, если я думаю о чем-то еще)
Говоря, глядя на количество шаблонов, которые мне НЕ нужно писать, я бы сказал, что это очень хорошая работа!
На данный момент репо кажется довольно ухоженным - последнее совершение было 18 дней назад на момент написания ответа. Я, вероятно, отправлю запрос на получение/подниму вопрос о проблемах, с которыми я столкнулся в их репо, в ближайшее время.
Вы можете проверить django-addview. Он предназначен для выполнения скучных, мирских шагов, необходимых для автоматического добавления нового представления с помощью удобного графического интерфейса ncurses. Что он делает для вас:
Полное раскрытие: я написал это.