如何在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的分销商如何在运行时调用translate函数?
使用其他术语这可能是一个很好的探索模式,只是不确定如何准确地表达它。
答案 0 :(得分:0)
如果dist
是分发服务器的实例,那么您可以dist.man
来获取Manufacturer实例。由于多表继承在Django中的工作方式,您需要访问制造商上存在的OneToOneField到子类实例。问题在于找出存在哪个子类实例。 storing the ContentType of the subclass in the Manufacturer instance可以使这更容易。