Как добавить пробел и $ перед столбцом в django-tables2 - PullRequest
0 голосов
/ 09 марта 2019

В моей таблице django есть два столбца по доллару, однако мне не нравится интервал и тот факт, что он находится рядом с предыдущим столбцом.Я также хочу добавить символ доллара.Как я могу добавить это?

Сейчас это выглядит так:

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 или что-то, что позволяет легко добавлять информацию о таблице, в разделестол?

Этот код основан на великолепном ответе Дэна!Он заставил его работать с данными из той же таблицы с этим кодом:

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

Вот модель для обслуживания, она подключается к цене через код.Строка tables.Column (acessor =) работает в классе 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 Ответ

1 голос
/ 09 марта 2019

Согласно документам Я предполагаю, что именно так вы и делаете:

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()
...