我正在尝试过滤查询集上的一些对象,我正在尝试的字段是十进制...
模型:
class CheckingAccount(models.Model):
owner = models.ForeignKey(Owner)
name = models.CharField(max_length=50, blank=False)
description = models.CharField(max_length=50, blank=True)
datetime = models.DateTimeField(default=datetime.now, blank=False)
currency = models.ForeignKey(Currency)
balance = models.DecimalField(max_digits=20, decimal_places=6)
def __unicode__(self):
return unicode(self.balance)
形式:
def clean(self):
message = self.cleaned_data['acquisition_value']
ow = Owner.objects.get(user_id=self.request.user.id)
ca = CheckingAccount.objects.filter(balance=self.cleaned_data['checkingaccounts'])
我得到的错误是:
例外价值:
无法转换为十进制
有什么想法吗?
答案 0 :(得分:1)
出于多种原因可能会出错,具体取决于cleaning_data的返回值。
首先 - 如果cleaning_data-失败并返回和异常或类似的东西怎么办?你的过滤器将无法正常工作:( 第二 - 它可能是一个十进制铸造问题。
IMHO 不要在过滤器中使用cleaning_data。 在其他地方清洁,并在清洁方法中使用清晰的简单十进制数进行过滤。