如何对Django表2使用Django _str__()方法

2024-09-25 10:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我的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的列


Tags: djangopyselftablesmodelsrecordpeoplemax
1条回答
网友
1楼 · 发布于 2024-09-25 10:27:30

如果您使用的是Python 3.6及以上版本,请使用f-string,否则使用.format

def __str__(self):
    # f-string
    return "{self.namefirst} {self.namelast}"
    # format 
    return "{} {}".format(self.namefirst, self.namelast)

__str__用于显示对象的字符串表示形式,例如: p1 = people()现在,当您打印对象时,您将获得此输出print(p1) => john doe

PersonTable的meta中添加要打印的字段

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',)

相关问题 更多 >