3

我怎样才能使它在我的价格变量下我可以自动让它显示一个 $?因此,它将显示 999.99 美元,而不是 999.99。我在 Django Admin 中这样做。

这是admin.py

from django.contrib import admin
from purchaseorders.models import PurchaseOrder


class PurchaseOrderAdmin(admin.ModelAdmin):
    fields = ['product', 'price', 'purchase_date', 'confirmed']
    list_display = ('product', 'price', 'purchase_date', 'confirmed', 'po_number')
admin.site.register(PurchaseOrder, PurchaseOrderAdmin)

这是来自models.py的一点

from django.db import models
import random

class PurchaseOrder(models.Model):
    price = models.FloatField()
4

1 回答 1

5

您可以通过以下几种方式做到这一点:

在中添加自定义属性PurchaseOrder

class PurchaseOrder(models.Model):
    price = models.FloatField()

    @property
    def dollar_amount(self):
        return "$%s" % self.price if self.price else ""

并参考dollar_amount而不是price

另一种方式

将其添加到PurchaseOrderAdmin

class PurchaseOrderAdmin(admin.ModelAdmin):
    fields = ['product', 'price', 'purchase_date', 'confirmed']
    list_display = ('product', 'dollar_amount', 'purchase_date', 'confirmed', 'po_number')

    def dollar_amount(self, obj):
        return "$%s" % obj.price if obj.price else ""


admin.site.register(PurchaseOrder, PurchaseOrderAdmin)

我个人更喜欢选项 1,这样如果必须对实际应用程序执行相同操作,我们就可以重用代码。

于 2013-07-23T20:15:03.870 回答