如果块中如何使用循环变量

时间:2016-06-19 18:27:51

标签: python django python-2.7

for instance in GratuityPayment.objects.all():
        print instance.date_paid
        if (employment_number == instance.employment_number):
            raise forms.ValidationError('This Employment Mumber was paid on ' + str(instance.date_paid) + '. You cannot proceed with this retirement')

打印instance.date_paid 打印存储在数据库中的所有date_paid,但 str(instance.date_paid)为无。

我的输出有以下行

此就业数据是按“无”支付的。你不能继续退休

如何在if语句中使用 instance.date_paid

2 个答案:

答案 0 :(得分:1)

如果您想在date_paid None {/ p>}时不应用支票

for instance in GratuityPayment.objects.all():
    if instance.date_paid is not None and employment_number == instance.employment_number:
        raise forms.ValidationError('This Employment Mumber was paid on ' + str(instance.date_paid) + '. You cannot proceed with this retirement')

但是,为什么不使用.filter()并且首先只获取相关记录:

GratuityPayment.objects.filter(date_paid__isnull=False, 
                               employment_number=employment_number)

答案 1 :(得分:0)

实际上是在工作。它的给定无,因为表中的特定表行确实没有。

我刚刚填充了date_paid,它返回了日期而不是None。