[英]How to use Django __str__() method for Django Tables2
我希望我的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__
用于显示 object 的字符串表示形式,例如: p1 = people()
现在,当您打印 object 时,您会得到此 output 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',)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.