好吧,我一直在阅读其他django继承问题,我找不到任何帮助。我可能对继承的工作原理有一个了解。但这是我的问题。首先,我有两个基本模型,我希望所有其他模型都可以继承。基础模型只包含一些适用于我所有模型的有用方法。第二个是帐户特定对象的开始。Django继承问题
class BaseModel(models.Model):
# A couple of methods that all my models need to have. No fields.
class AccountModel(models.Model):
''' A base model for items related to a specific account'''
account = models.ForeignKey(Account)
def save(self, request, *args, **kwargs):
self.account = request.session['account']
super(AccountModel, self).save(*args, **kwargs)
然后,我有三个型号:
class Keyword(AccountModel) :
keyword = models.CharField(max_length=300)
#other fields, none required...
class Project(AccountModel) :
project_name = models.CharField(max_length=200,verbose_name="Project Name")
#other fields..
class KeywordTarget(BaseModel):
keyword = models.ForeignKey(Keyword)
url = models.URLField(null=True,blank=True)
project = models.ForeignKey(Project)
但是当我尝试创建一个新的关键词,我得到这个错误:
ValueError: Cannot assign "'something'": "Keyword.keyword" must be a "Keyword" instance.
当我这样做:
kw = Keyword(keyword = "something")
我哪里错了?
(另外,请不要告诉我,我应该通过使用多对多,除非它解决了眼前的问题),它看起来既像BaseModel和帐户模式将抽象
你可能是做错了,从它看起来像这样的错误:Keyword.keyword是一个外键而不是你粘贴的代码中定义的CharField。 – 2011-03-01 23:54:20
是的......我可能做错了什么。它看起来像那样,但我发布的代码就是那里的内容。这就是为什么我认为这是继承的原因。 – lovefaithswing 2011-03-02 00:00:20