在Djang中更改特定CharField的呈现

2024-06-17 18:28:28 发布

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

我有一个模型BankAccountBankAccount模型包含CharFieldIBAN,这是一个国际银行帐号。我在多个模板中使用{{ bank_account.IBAN }}。它被存储为一个没有空格的字符串,但是我想改变它的模板呈现方式,使每4个字符后跟0。在

SK121234123412341234将呈现为SK12 1234 1234 1234 1234

我可能可以创建一些TemplateTagTemplateFilter,但我很好奇是否有一种方法可以在BankAccount模型中更改它。例如,创建我自己的IBANField(重写CharField),这样我就不必用tagsfilters包围{}变量。在

class BankAccount(models.Model):
    IBAN = models.CharField(max_length=40, ... )
    ...

在此处找不到呈现方法:https://docs.djangoproject.com/en/1.11/howto/custom-model-fields/


Tags: 方法字符串模型模板ibanmodels方式account
1条回答
网友
1楼 · 发布于 2024-06-17 18:28:28

您可以创建一个自定义字段,但最简单的事情就是编写一个以正确格式显示值的方法。比如:

class BankAccount(models.Model):
    ..
    def display_iban(self):
        return ''.join(l + ' ' if (i+1) % 4 == 0 else l for i, l in enumerate(self.IBAN))

现在您可以在模板中执行{{ bank_account.display_iban }}。在

相关问题 更多 >