[英]How to model this in django (inherited model, where each inherited model has a unique method)
如何在Django中建模:
1)擁有制造商的基礎網絡
2)在每個網絡下,他們可能是幾個分銷商
3)系統的用戶可以通過分銷商訪問商品
4)如果用戶通過分銷商訪問商品,我們希望該商品被翻譯,每個制造商都有自己的翻譯
class Manufacturer(models.Model):
networkname = models.CharField(max_length=128)
class Meta:
proxy = True
class Distributor(models.Model):
man = models.ForeignKey(Manufacturer)
class ManuType1(Manufacturer):
def translate(self, str):
return 'translate'
class ManuType2(Manufacturer):
def translate(self, str):
return 'translate'
在這種情況下,我們將請求某個分銷商。 我們確定該分銷商,並希望稱其為分銷商翻譯方法。 這看起來像是在Django中建模的方式(我敢肯定有很多方法可以做到這一點),所以任何輸入/反饋都是有用的。
我遇到問題的地方(也許不太了解python)被分配了ManuType1的Distributor。如何在運行時調用translate函數?
這可能是使用其他術語的一種經過充分研究的模式,只是不確定如何准確地表達它。
如果dist
是Distributor的實例,則可以執行dist.man
來獲取Manufacturer實例。 由於多表繼承在Django中的工作方式,您需要將Manufacturer上存在的OneToOneField訪問到子類實例。 問題在於找出哪個子類實例存在。 通過將子類的ContentType存儲在Manufacturer實例中,可以使此操作更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.