Django模型问题:不返回模型字符串表示名称

时间:2010-11-03 11:46:13

标签: django string unicode django-models

您好我的模特似乎遇到了麻烦。在我看来,我无法命名字符串表示名称。在python shell中,我得到了一个Payment对象。

[<Payment: Payment object>, <Payment: Payment object>]

这是我的模特。如果我可以删除我定义的line_total的位置应该更简单,但是正如您所知,生成表格后编辑模型并不是那么简单。

class Payment(models.Model):
    unit_price = models.DecimalField(max_digits=12, decimal_places=2)
    discount = models.DecimalField(max_digits=12, decimal_places=2)
    payment_terms = models.CharField(max_length=80)
    amount = models.DecimalField(max_digits=12, decimal_places=2)
    line_total = models.DecimalField(max_digits=12, decimal_places=2)

    def line_total():
        unit_price -= discount 
        return line_total

        def __unicode__(self):
            return self.line_total

3 个答案:

答案 0 :(得分:0)

__unicode__()上的缩进不正确。它应该与line_total()处于同一级别。

答案 1 :(得分:0)

当您的模型在列表中打印时,它不是被调用的__unicode__方法,而是__repr__(您也可以通过比__unicode__更简单的输出来实现)

答案 2 :(得分:-1)

好的,看起来我会这么做。我删除了line_total字段,因为第一个原因,我真的不需要它&amp;第二个原因是,不知何故,没有为accounts_payment.line_total创建的列。所以在我的mysql数据库中。我现在也做了它,所以它返回一个unit_price而不是一个对象。无论如何,无论如何都要为每个人提供帮助。