2010-01-06 49 views
3

我是來自Rails的新來的Django,我發現Django Fixtures(我收集的最常見的JSON),有點尷尬和unweildy,至少在軌道夾具比較我很熟悉。我喜歡能夠嵌入一些ruby代碼,例如<%= Time.now %>,或者在將外鍵與外鍵關聯時(爲了避免跟蹤id)而引用其他固定裝置。Django JSON夾具生成

所以這個問題,你如何更多地體驗Django開發者構建你的燈具。你是否坐下來手動編寫JSON/XML/YAML,還是有其他工具可以幫助類似於rails給我的東西?或者,在./manage.py shell中創建一些數據並將該數據轉儲到燈具中最簡單,而不是用手寫入燈具?或者甚至還有,你是否發現自己在測試類中的setUp(self)方法中輸入了大量數據。也許一旦你有更多的經驗,用手寫這些東西是不是很乏味?

+1

如果您已經安裝PyYAML(我想應該是在stdlib),你可以在YAML中寫入燈具,這更令人愉快。 – LeafStorm 2010-01-07 12:07:58

回答

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/ – 2010-01-09 02:02:56

+0

不知道!謝謝你的提示。 – 2010-01-11 02:16:28

+0

對dumpdata使用'--natural'標誌。它將使用自然鍵,如果可能的話,而不是主要的ID。如果您與ContentTypes模型有關係,這一點尤其重要。 – Ski 2010-11-02 14:49:39

1

結賬django-dilla。它會爲您的模型生成隨機數據,甚至是圖像。用於測試而不需要手動將數據輸入到管理員的繁瑣操作。在項目中所有的數據到一個Json夾具

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

然後在tests.py

0

簡單的數據轉儲內容添加到包括燈具:

class ViewTests(TestCase): 

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

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