Хорошо, я читал другие вопросы о наследовании 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.
, когда яdo:
kw = Keyword(keyword = "something")
Куда я иду не так?
(Также, пожалуйста, не говорите мне, что я должен использовать ManyToMany до тех пор, пока это не решит проблему под рукой)