LINUX.ORG.RU

Сообщения aalek

 

PHP, WebMoney, Yandex Деньги

Подскажите пожалуйста откуда можно скачать, рабочие скрипты на для приёма плотежей через WebMoney и Yandex Деньги ?

aalek
()

[Django] Наследование моделей

Добрый день! Подскажите пожалуйста , как можно реализовать в Django сл. задачу.

Есть например модель A c некоторым полем dataA
и методом printdata, и есть наследник B (их может быть много):


class A(models.Model):
dataA = models.IntegerField()
def printdata(self):
print self.dataA


class B(A):
dataB = models.IntegerField()
def printdata(self):
print self.dataA + self.dataB


Как сделать функцию printdata виртуальной.

например:
b = B()
b.dataA = 10
b.dataB = 10
b.save()
a = A.objects.get(id = 1)
a.printdata() # здесь происходит вызов A.printdata, а нужен B.printdata

ps Если использовать абстрактную модель те через класс Meta сделать
модель абстрактоной. Тогда возникает другая проблема, связанная с
тем, что на абстрактную модель нельзя создавать ключей.

Например:
class A(models.Model):
dataA = models.IntegerField()
def printdata(self):
print self.dataA

class Meta:
abstract = True

class B(A):
dataB = models.IntegerField()
def printdata(self):
print self.dataA + self.dataB


class C(models.Model):
a = models.ForeignKey(A) # Так делать нельзя!

 

aalek
()

RSS подписка на новые темы