2010-01-06 3 views
3

Я новичок в Django, который приходит из Rails, и я нахожу приспособления Django (чаще всего JSON из того, что я собираюсь), чтобы быть несколько неудобными и неровными, по крайней мере, по сравнению с креплениями рельсов, которые Я знаком с. Мне понравилось встраивать некоторый код ruby, например <%= Time.now %>, или ссылаться на другие приборы по имени, когда они связаны с внешними ключами (чтобы избежать необходимости отслеживать идентификаторы).Генерация арматуры Django JSON

Итак, вопрос, как вы больше ощущаете разработчиков Django, строят свои светильники. Вы садитесь и пишете JSON/XML/YAML вручную, или есть другие инструменты, которые помогут вам схоже с тем, что мне дает рельсы? Или проще всего создавать некоторые данные в оболочке ./manage.py и выгружать эти данные на прибор, вместо того, чтобы записывать приборы вручную? Или даже все-таки, вы обнаружите, что вкладываете много данных в свой метод setUp (self) в своих тестовых классах. Может быть, написать эти вещи вручную - это менее утомительно, если у вас есть немного больше опыта?

+1

Если вы установили PyYAML (который я думаю, должен быть в stdlib), вы можете записывать светильники в YAML, что намного приятнее. – LeafStorm

ответ

2

Сайт администратора Django отлично подходит для быстрого ввода фиктивных данных или исходных данных. Затем вы можете сбрасывать это в json-файл (или любой другой формат).

http://docs.djangoproject.com/en/dev/ref/django-admin/#dumpdata-appname-appname-appname-model

django-admin.py dumpdata | pbcopy сбросит все данные в формате JSON в буфер обмена.

Будьте осторожны с демпингом типов contenttypes и auth, поскольку это может вызвать проблемы при загрузке прибора обратно в базу данных.

+2

pbcopy и pbpaste Я думаю, что они специфичны для Mac. В linux это xsel. http://whereswalden.com/2009/10/23/pbcopy-and-pbpaste-for-linux/ –

+0

Не знал этого! Спасибо за совет. –

+0

Используйте флаг '--natural' с дампами. Он будет использовать естественные ключи, если это возможно, вместо первичных идентификаторов. Это особенно важно, если у вас есть отношения с моделью ContentTypes. – Ski

1

Отъезд django-dilla. Он генерирует случайные данные для ваших моделей, даже изображений. Полезно для тестирования без утомительного ввода данных вручную.

0

Простой сброс данных всех данных в проекте в Json арматуре

python manage.py dumpdata --format=json myapp > /path/to/myapp/fixtures/initial_data.json 

Тогда в tests.py добавить это включить светильники:

class ViewTests(TestCase): 

    # load fixtures 
    fixtures = ['data2.json'] 

     def setUp(self): 
     # continue remainder of test code