我有一個模型,新聞,有一個ForeignKey到另一個模型,類別。 這些類別使用id,name,slug和一些參數來定義。 我的分類將來永遠不會改變,所以我想知道爲什麼我要將它們存儲在數據庫中。 有沒有什麼方法可以在代碼中對它們進行硬編碼,比如使用選項或其他技術?在Django中硬編碼數據的最佳方式
2
A
回答
2
是的,選擇,存儲作爲元組元組的ID-name對和其他結構中的任何其他參數。
CATEGORIES = (
(1, "Some category"),
(2, "Another category"),
)
CATEGORIES_PARAMS = {
1: {'slug': 'param_value'},
2: {'slug': 'another_value'},
}
class News(models.Model):
category = models.IntegerField("category", choices=CATEGORIES)
...
,那麼你可以使用其他PARAMS方式如下:
CATEGORIES_PARAMS[news_istance.category]['slug']
o創建簡單的包裝類:
class Category(object):
def __init__(self, id):
self.id = id
def __getattr__(self, attr):
return CATEGORIES_PARAMS[self.id][attr]
cat = Category(news_instance.category)
print cat.slug
0
如果你打算使用創建您的新聞和分類模型之間的關係一個ForeignKey,那麼必須有一個模型類別。現在你說你的類別永遠不會改變,但如果以後需要更改,你需要重新設計你的代碼。要使用django的全套ORM功能,最好將其存儲在數據庫中並堅持設計。
相關問題
- 1. 在您的應用中硬編碼數組的最佳方式?
- 2. 最佳編碼方式
- 3. 在django中遷移數據的最佳方式
- 4. 最佳的URL編碼方式?
- 5. 什麼是避免Application.Current.Properties的硬編碼鍵的最佳方法?
- 6. 在django中編寫組合框的最佳方式是什麼?
- 7. 在最佳實踐中避免在Apex中進行硬編碼
- 8. 避免複製粘貼和硬編碼的最佳方法
- 9. 當使用ASP.NET MVC與JQuery時,不硬編碼url的最佳方式
- 10. 編輯wpf數據網格中整行的最佳方式?
- 11. 從傀儡代碼中分離數據的最佳方式
- 12. XAML中硬編碼大小的最佳實踐
- 13. 用Asp.Net去除javascript中的硬編碼字符串的最佳方法MVC
- 14. 最佳的Django模型的方式
- 15. 防止硬編碼的URL在Django
- 16. iPad - 存儲數據的最佳方式
- 17. 存儲數據的最佳方式
- 18. 存儲數據的最佳方式
- 19. 緩存數據的最佳方式
- 20. 在django模板中複製數據的最佳方式是什麼?
- 21. 在iPhone上使用C++編碼的最佳方式是什麼?
- 22. 什麼是編碼/保護JavaScript代碼的最佳方式?
- 23. 編碼和解碼文本的最佳方式PHP
- 24. 編輯XML文件數據的最佳方式是什麼?
- 25. 編輯數據時阻擋UI元素的最佳方式
- 26. 在c中編寫解析器的最佳/最快的方式#
- 27. 保持數組在代碼中的最佳方式
- 28. 編寫便攜式Scheme代碼的最佳方式?
- 29. 將數據添加到Django數據庫的最佳方式是什麼?
- 30. 採取備份代碼和數據庫的最佳方式?
'這些類別是用id,名稱,slug和一些參數來定義的'所以這是不可能的。 – Babu 2012-08-03 10:53:44
我認爲這是顯而易見的如何存儲其他屬性,對不起...更新。 – yedpodtrzitko 2012-08-03 10:55:21
謝謝,這解決了我的問題! – 2012-08-03 11:06:07