Я пытался создать динамическое свойство с помощью декоратора метода, проблема, с которой я сталкиваюсь, заключается в том, что я хочу использовать это поле, если пользователь не сохранил его/ее собственный. Например:Свойство возврата Django, если не возвращает результат возврата null
class Person(models.Model):
name = models.CharField(max_length=100, null=True, blank=True)
def __str__(self):
return self.name
@property
def name(self):
return self.name if self.name else "John"
В принципе, я хочу вернуть «Джон», если я не нахожу ничего в полях имени. Однако, делая это таким образом, Django жалуется, потому что self.name
изучает функцию имени, а не фактическое свойство.
maximum recursion depth exceeded while calling a Python object
Есть ли способ сослаться на недвижимое имущество или, может быть, какой-то другой способ для достижения этой цели?
Это будет отличная идея ... Мне нужно, чтобы получить доступ к себя и определить, что «Джон» будет, как на основе других полей в объекте. Не удалось это упомянуть. +1 в любом случае; это сработало бы хорошо. – mimoralea