如何在 django-tables2 的列前添加 space 和 $

How to add space and $ in front of column in django-tables2

我的 django table 中有两个美元列,但是,我不喜欢这种间距,而且它紧挨着前一列。我还想添加一个美元符号。我怎样才能添加这个?

现在看起来像这样:

Price1Price2
345.09 154.35

我希望它看起来像这样:

Price1    Price2
5.09   4.35

我的 django table 是基本的:

class PriceTable(tables.Table):

    class Meta:
        model = Price
        template_name = 'django_tables2/bootstrap.html'
        sequence = ('service', 'price1', 'price2')
        exclude = ("comments")
        attrs = {"class": "paleblue"}

这些列在models.py中是这样定义的:

price1 = models.DecimalField(max_digits=6, decimal_places=2, blank=True)
price2 = models.DecimalField(max_digits=6, decimal_places=2, blank=True)

还有一个问题,在table下面有没有django-tables2 table描述函数或者可以轻松添加关于table的信息的东西?

此代码基于 Dan 的精彩回答!他使用以下代码使它能够处理来自同一 table 的数据:

class Price1Column(tables.Column):
  def render(self, record):
      return ' ${}'.format(record.price1)

现在我想要另一个 table - 服务的专栏,但这不起作用:

class Price2Column(tables.Column):
  def render(self, record):
      return ' ${}'.format(record.tables.Column(accessor='service.price2'))
  class Meta:
      model = Price

这是服务的模型,它通过代码连接到价格。 tables.Column(acessor=) 行在 Class PriceTable() 中起作用。

class Service(models.Model):
    serviceid = models.UUIDField(default=uuid.uuid4, help_text='Unique ID for this particular service in database')
    desc_us = models.TextField(blank=True, primary_key = True)
    code = models.IntegerField(default= 10000)
    price2 = models.DecimalField(max_digits=8, decimal_places=2, blank=True)

    class Meta:
        ordering = ['serviceid']

    def __str__(self):
        """String for representing the Model object."""
        return self.desc_us

根据 docs 我假设你是这样做的:

class Price1Column(tables.Column):

    def render(self, record):
        return '${}'.format(record.price1)

class Price2Column(tables.Column):

    def render(self, record):
        return '${}'.format(record.price2)

class PriceTable(tables.Table):
    # ...
    price1 = Price1Column()
    price2 = Price2Column()