我想將模型名稱作爲URL參數傳遞,因此我可以使用它來訪問我視圖中的指定模型類。例如:如何在Django中將模型明確標識爲小寫字符串
/app_label/MODEL_NAME
和views.py:
from django.db.models.loading import get_model
model = get_model(app_label, model_name)
的問題是 - 我想我的網址是不區分大小寫。因此,我不能只用上面的代碼,因爲這些模型的人能像這些如下:
爲MyModel,MySuperModel,MyAwesomeSuperModel
有什麼辦法明確識別模型爲小寫串?
我曾考慮過使用table_name但是這意味着每次處理請求時都會循環播放項目中的每個模型。效率不高。
如果你希望URL不區分大小寫,那麼你不應該使用模型類名稱,它們的名字只是大小寫不同的,所以不會有任何歧義。 – aalizadeh
如果你沒有太多的模型,你可以創建一個字典映射模型的規範名稱模型本身......可能有DRYer的方式來做到這一點,但這將是快速和容易的。 – rfj001
我想創建一個通用的解決方案(一個可重用的應用程序),所以我不能控制有多少模型或他們的名字是什麼 – dev9