处理从数据库传递到模板的数据(Django)
Manipulating data passing from database to template (Django)
我对 Django 还是很陌生,所以我真的希望我能解释一下我需要做什么。
我有一个表单,用户可以在其中输入有关角色的信息,然后将其存储在数据库中并在页面上为他们显示。
我知道使用模板变量调用(即 {{character.gender}})很容易调用和显示这些数据,但是,我正在尝试使用输入的数据根据数据创建其他变量在进入模板之前。
我以前在 visual basic 中做过这个,本质上是使用 if 语句创建一个新变量来存储信息,然后再传回它,但我不知道如何用 django/python.
例如,如果用户提供了以下信息:
Name = "Jill"
Age = 23
Gender = "Female"
我希望能够做类似的事情:
if gender = "female":
gender_identifier = 'she'
if age < 30:
youth = "is still very young"
然后可以在模板中执行类似的操作:
{{character.name}} is {{character.age}} years old and {{gender_identifier}} {{youth}}!
输出"Jill is 23 years old and she is still very young!"
我苦恼的是那些 if 语句需要去哪里以及如何在模板中调用它们。
我已经尝试将它们添加到角色模型中,创建它自己的模型,将其放入 models.py,并创建一个不同的 .py,但无法让它工作。
此外,我知道可以通过 if/then 模板标签来完成,但我真的想尽可能避免这种情况。但是,如果这是解决方案,我可以接受。
感谢您提供的所有帮助,感谢您在我摸索着尝试解释时通读整个问题!
这可以使用 Python 的 property decorator 来实现。
class Character(models.Model):
#All the fields declarations
.
.
.
@property
def gender_identifier(self):
if self.gender == "Female":
return "she"
@property
def youth(self):
if age < 30:
return "is still very young"
property
的作用是允许您将函数作为对象属性来调用。因此,每当您访问 Character.gender_identifier
将调用方法 gender_identifier
并返回值。
现在在您的模板中,您只需执行 {{Character.gender_identifier}}
我对 Django 还是很陌生,所以我真的希望我能解释一下我需要做什么。
我有一个表单,用户可以在其中输入有关角色的信息,然后将其存储在数据库中并在页面上为他们显示。
我知道使用模板变量调用(即 {{character.gender}})很容易调用和显示这些数据,但是,我正在尝试使用输入的数据根据数据创建其他变量在进入模板之前。
我以前在 visual basic 中做过这个,本质上是使用 if 语句创建一个新变量来存储信息,然后再传回它,但我不知道如何用 django/python.
例如,如果用户提供了以下信息:
Name = "Jill"
Age = 23
Gender = "Female"
我希望能够做类似的事情:
if gender = "female":
gender_identifier = 'she'
if age < 30:
youth = "is still very young"
然后可以在模板中执行类似的操作:
{{character.name}} is {{character.age}} years old and {{gender_identifier}} {{youth}}!
输出"Jill is 23 years old and she is still very young!"
我苦恼的是那些 if 语句需要去哪里以及如何在模板中调用它们。
我已经尝试将它们添加到角色模型中,创建它自己的模型,将其放入 models.py,并创建一个不同的 .py,但无法让它工作。
此外,我知道可以通过 if/then 模板标签来完成,但我真的想尽可能避免这种情况。但是,如果这是解决方案,我可以接受。
感谢您提供的所有帮助,感谢您在我摸索着尝试解释时通读整个问题!
这可以使用 Python 的 property decorator 来实现。
class Character(models.Model):
#All the fields declarations
.
.
.
@property
def gender_identifier(self):
if self.gender == "Female":
return "she"
@property
def youth(self):
if age < 30:
return "is still very young"
property
的作用是允许您将函数作为对象属性来调用。因此,每当您访问 Character.gender_identifier
将调用方法 gender_identifier
并返回值。
现在在您的模板中,您只需执行 {{Character.gender_identifier}}