Параметр метода модели Django со значением по умолчанию от связанного
Мне нужен метод модели с параметром, имеющим значение по умолчанию:
class MyModel(models.Model):
parameter1 = models.DecimalField(max_digits=8,decimal_places=6, default=0)
def my_method(self, parameter = parameter1)
return parameter
поэтому, если использовать print("{} - {}".format(object.my_method(),object.my_method(12.6))
, то это нормально
Но мне нужно, чтобы он был более вложенным:
class MySubModel(models.Model):
parameter1 = models.DecimalField(max_digits=8,decimal_places=6, default=0)
class MyModel(models.Model):
submodel = models.ForeignKey(MySubModel, on_delete = models.RESTRICT)
def my_method(self, parameter = submodel.parameter1)
return parameter
И это вызывает ошибку:
AttributeError: объект 'ForeignKey' не имеет атрибута 'parameter'
Идеи?
прочитайте комментарий @Nick ODell, он намного умнее меня
но просто добавьте немного if!
class MyModel(models.Model):
parameter1 = models.DecimalField(max_digits=8,decimal_places=6, default=0)
def my_method(self, parameter = None)
if parameter != None:
return parameter
return self.parameter1
# or if you don't plan on passing 0 (zero)
return parameter if parameter else self.parameter1