繁体   English   中英

如何为 Django Tables2 使用 Django __str__() 方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM