【问题标题】:Django filter queryset if a field exists如果字段存在,Django过滤查询集
【发布时间】:2015-05-06 16:43:30
【问题描述】:

当且仅当loan 存在于我的模型ShgGroupLoanMarking 中时,我想过滤我的查询集。

class ShgGroupLoanMarking(models.Model):
 shg = models.ForeignKey(Shg, null=True)
 category = models.CharField(max_length=25, choices=GROUP_CATEGORY, default="shg_group")
 msss = models.ForeignKey(Msss, null=True)
 shgmember = models.ForeignKey(ShgMember, null=True)
 loan = models.ForeignKey(Loan, null=True)
 date_of_marking = models.DateField(null=True)
 paid = models.CharField(max_length=100, null=True)
 loan_amount = models.CharField(max_length=100, null=True)
 service_charge = models.CharField(max_length=100, null=True)
 description = models.CharField(max_length=100, null=True)
 status = models.CharField(max_length=100, null=True)
 print_status = models.BooleanField(default=False)
 sent_to_bank_status = models.BooleanField(default=False)
 receipt_number = models.IntegerField(default=0)

如何做到这一点?

【问题讨论】:

    标签: django django-queryset django-filter


    【解决方案1】:
    ShgGroupLoanMarking.objects.filter(loan__isnull=False)
    

    ShgGroupLoanMarking.objects.exclude(loan=None)
    

    【讨论】:

    • 这实际上并不测试一个字段是否存在,它假定它存在并检查它是否为空。如果该字段确实不存在,这仍然会抛出 jango.core.exceptions.FieldError: Cannot resolve keyword '....' into field.
    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 2018-10-28
    • 2017-03-05
    • 2013-04-20
    • 2019-02-17
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多