0

我讀過使用夾具或SQL指示創建APP時的Django的文檔的所有用戶相同。但是我想在每次添加新用戶時添加相同的燈具。我沒有看到一個簡單的方法來做到這一點。我認爲signals.py可能是一種做法,但我無法看到如何確保在沒有ID的情況下添加燈具。每當創建一個新的用戶,我想創建的該用戶記錄的「入門套件」,也就是爲

夾具文檔:https://docs.djangoproject.com/en/dev/howto/initial-data/

例如,有建議用於每個用戶的起始任務5個任務。所以每次創建新用戶時,我都希望將這些任務添加到新用戶帳戶中。任務對用戶有FK。

我接受建議,瞭解如何完成這件事。

回答

0

其實是有做的很簡單的方法。

某處創建初始數據類型的字典。任何合理的地方都很好。

創建信號: https://docs.djangoproject.com/en/dev/ref/signals/#post-save

設置發件人類django.contrib.auth.models.User

方法稱爲上信號臨危對象實例作爲參數之一。在這個信號中,不幸的是,你無法檢查,如果用戶是新用戶,那麼你必須檢查用戶是否有通過外鍵鏈接到它的「入門工具包」模型。如果他們不這樣做,那麼根據您的初始數據創建您自己的模型。

這樣做的另一種方法是擴展django.contrib.auth.models.User,並將您自己的自定義信號添加到它的保存方法中,保存用戶時不需要pk。在這種情況下,您可以確保每次調用信號時都必須創建新的「入門工具包」。

+0

愛你的第一個建議。它感覺更便攜。我會玩。謝謝! –

相關問題