2011-05-27 130 views

回答

42

閱讀TestCase.fixtures

  1. 將一些數據加載到Django管理的數據庫中。簡單的Python腳本很好地工作,或使用默認的管理界面。使用manage.py dumpdata將數據轉儲到JSON夾具文件中。閱讀「django-admin.py and manage.py」。

+1

,最好鏈接到[dev](「https://docs.djangoproject.com/en/dev/ref/django-admin/#dumpdata-appname-appname-appname-model」)版本? – codervince 2016-05-01 05:04:59

+3

您提供的鏈接不再有效,下面是一個新鏈接:[TestCase.fixtures](https://docs.djangoproject.com/en/1.9/howto/initial-data/) – Dan 2016-06-03 06:14:00

14

您必須在您的應用程序中創建一個名爲夾具的目錄,並將您的夾具文件放在那裏。

您可以使用json或xml編寫它們,一種簡單的方法是在管理界面中創建一些對象,然後運行manage.py dumpdata。這會將您創建的對象的數據轉儲到夾具文件中。之後,您可以簡單地編輯這些文件以滿足您的需求。

https://docs.djangoproject.com/en/1.7/ref/django-admin/#dumpdata-app-label-app-label-app-label-model

如果要加載的燈具使用manage.py loaddata。

https://docs.djangoproject.com/en/1.7/ref/django-admin/#loaddata-fixture-fixture

你可以有將被自動加載,當您運行執行syncdb,只需創建一個名爲initial_data文件和Django的將其識別初始數據的燈具。

https://docs.djangoproject.com/en/1.7/howto/initial-data/#automatically-loading-initial-data-fixtures

用於測試用途燈具必須在您的測試類

https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading

7

我降落在這裏尋找如何做燈具申報。我發現以下文章是最簡單的。

https://code.djangoproject.com/wiki/Fixtures

添加FIXTURE_DIRS路徑,您的應用程序的settings.py

import os 
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__)) 
FIXTURE_DIRS = (
    os.path.join(PROJECT_DIR, 'fixtures'), 
) 

現在將您當前的myapp狀態轉儲到JSON文件中。

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

多數民衆贊成它,時間來測試。刪除myapp表...

./manage.py sqlclear myapp | ./manage.py dbshell 

現在重新加載現在的燈具......

./manage.py syncdb 
+4

還值得注意的是,您可以通過使用小寫路徑選擇性轉儲模型。你也可以通過'python -mjson.tool' - 'python manage.py dumpdata myapp.mymodel | python -mjson.tool> mymodel.json'。 – Rebs 2016-02-06 04:50:40

+0

運行'dumpdata'命令時出現錯誤。 '必須使用TextField實例作爲第一個參數(改爲獲得ModelBase實例)調用未綁定的方法contribution_to_class()''。爲什麼? – Hussain 2017-02-01 09:21:54

+0

@Hussain模型是否有效?請參閱https://code.djangoproject.com/wiki/NewbieMistakes#Symptom5 – cevaris 2017-02-01 15:16:51

2

我目前正在寫一個Django模塊(django-generate_fixtures)產生聰明燈具,每一個相關的模型如下的一個父對象。

它現在將數據轉儲爲JSON,然後您可以像裝載其他任何裝置一樣加載數據。

2

如果要轉儲整個網站,你並不需要指定一個固定裝置在設置目錄,你可以在你的項目中的燈具目錄並運行此

python manage.py dumpdata --format=json > /full-path-to-my-project/fixtures/initial_data.json 
鏈接到文檔時
相關問題