我有兩個文件:如何使用Django將python類存儲到數據庫中?
choices.py
class SomeChoice:
name = u"lorem"
class AnotherChoice:
name = u"ipsum"
# etc...
models.py
from django.db import models
import choices
class SomeModel(models.Model):
CHOICES = (
(1, choices.SomeChoice.name),
(2, choices.AnotherChoice.name),
# etc...
)
somefield = models.IntegerField('field', choices=CHOICES)
問題:從choices.py類需要這樣的東西一個主鍵要存儲在我的數據庫中。在這裏我手寫這些鍵(1,2,...),但這很難看。
舉例來說,我不想這樣做:
class SomeChoice:
id = 1
name = "lorem"
class AnotherChoice:
id = 2
name = "lorem"
所以我的問題是:什麼是Python類存儲到數據庫中的最佳方式?
請原諒我醜陋的英語。如果您需要更多信息,請告訴我。 ;-)
這是一個好主意,謝謝!但是仍然存在一個問題:就你的例子而言,如果(因爲任何原因)我決定刪除'(SomeChoice)',所有(鍵,類)對都將被改變。但是我需要每個班級的*獨特*和*永久*鍵。其實問題應該是:有沒有辦法爲一個班級創建一個唯一的密鑰(自然數,非零)? – user176455 2010-02-06 16:27:29
您可以調整註冊模式以將註冊表存儲在文件中,並且只有在以前從未見過類的情況下才會生成新的ID,並通過模塊名稱+名稱對類進行索引(並處理併發問題)......或者您可以在寄存器()調用上面寫'#不要碰!' – 2010-02-06 16:51:13
我是一個懶惰的人,所以目前我會使用第二種選擇。非常感謝您的幫助。 :) – user176455 2010-02-06 16:59:45