Я хотел бы добавить методы класса «tools» для 2 моих моделей модели django. Каждый класс будет использовать те же методы, с его собственной модели eample:DJANGO models proxy inharitence
class mapA(models.Model):
mInd = models.IntegerField()
scId = models.IntegerField()
class mapB(models.Model):
mInd = models.IntegerField()
scId2 = models.IntegerField()
Я хотел бы добавить такие методы, как checkInput() для них обоих. Так что я мог бежать:
mapBInstance.checkInput();
mapAInstance.checkInput();
ECH раз checkInput работает над данными в МАПО или mapB.
Я думал о создании класса инструментов &, чтобы каждая модель могла наследовать от него. Таким образом, класс tools будет иметь логику, которая идентична обеим картам.
Когда я прочитал django docs Я не видел примера для этого случая только близких решений. Является ли это правильным решением (использовать класс прокси)?
class Tools():
def __init__():
...init class...
def checkInput():
..make the checks..
class MapA(Tools, models.Model):
mInd = models.IntegerField()
scId = models.IntegerField()
def checkSelf():
self.checkInput(self.objects.filter(....))
class MapB(Tools, models.Model):
mIndB = models.IntegerField()
scIdB = models.IntegerField()
def checkSelf():
self.checkInput(self.objects.filter(....))
Нет, 'tools' - это просто класс mixin, он не определяет какую-либо модель (таблицу), которая нужна, когда вам понадобится прокси-модель. ps: 'this' написано' self' в Python. – thebjorn
TY, я обновил это правильное решение? – user2495766
См. Ответ @ frnhr. Вам не нужно переопределять checkInput, но поскольку '.objects.filter (...)' является методом класса (т. Е. Его нельзя вызывать на 'self'), возможно,' checkInput' должен быть методом класса слишком? (недостаточно информации, чтобы сказать, хотя). – thebjorn