python - 如何为 Django Tables2 使用 Django __str__() 方法
问题描述
我希望我的django_tables2
表格显示__str__()
记录的格式化版本。这是我正在使用的内容:
#models.py
class people(models.Model):
namelast = models.CharField(max_length=100, verbose_name='Last Name')
namefirst = models.CharField(max_length=100, verbose_name='First Name')
# more fields...
def __str__(self):
return "%s %s" % (self.namefirst, self.namelast)
#tables.py
import django_tables2 as tables
from .models import people
class PersonTable(tables.Table):
person = tables.Column()
def render_person(self, value, record):
return record #Also tried record.lastname, record.__str__()
class Meta:
model = people
fields = ('person',)
它的所有变体都刚刚返回了一个表,其中包含一个名为“Person”的列和空白行(即“_”)。如何获得格式为 的列namefirst namelast
?
解决方案
如果您使用 Python 3.6 及更高版本,请使用f-string,否则使用.format
def __str__(self):
# f-string
return "{self.namefirst} {self.namelast}"
# format
return "{} {}".format(self.namefirst, self.namelast)
__str__
用于显示对象的字符串表示形式 ex:
p1 = people()
现在,当您打印对象时,您会得到此输出print(p1) => john doe
在您的PersonTable的元数据中添加您要打印的字段
class PersonTable(tables.Table):
def render_person(self, value, record):
return record #Also tried record.lastname, record.__str__()
class Meta:
model = people
fields = ('namefirst', 'namelast',)
推荐阅读
- sparql - 是否有一个 SPARQL 查询来产生项目总数(在数据库中)?
- python - matplotlib Boxplot 抽屉函数统计数据均值
- java - 依赖 Jar 没有引用它自己的 application.properties
- reactjs - React Jest 测试无法使用 ts-jest 运行 - 导入文件上出现意外令牌
- c++ - Qt在孩子中使用父函数(C++)
- c++ - 内存出了什么问题?
- macos - dyld:库未加载:@rpath/... 原因:代码签名时未找到图像
- postgresql - 在 Postgres 中更新 JSON 列?
- firebase - 在 Cloud Run Container 中使用 Firebase Admin Auth
- git - 自己托管存储库的本地“分叉”