如何在django-tables2的列前面添加空间和$

时间:2019-03-09 13:54:04

标签: django django-models django-tables2

我在django表中有两个dollar列,但是,我不喜欢空格和它就在前一列旁边的事实。我还想添加一个美元符号。如何添加呢?

现在看起来像这样:

Price1Price2
345.09 154.35

我希望它看起来像这样:

Price1    Price2
$345.09   $154.35

我的django表是基本的:

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)

另一个问题,在表下是否有django-tables2表描述功能或可轻松添加有关表信息的内容?

此代码基于Dan的出色回答!他使用以下代码将其用于处理来自同一表的数据:

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

现在,我想要另一个表中的列-服务,但这不起作用:

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

这是服务的模型,它通过代码连接到Price。 table.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

1 个答案:

答案 0 :(得分:1)

根据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()