我需要根据状态进行删除和更新。
以下是型号:
class Purchases(TimeStampedModel):
APROVADO = "AP"
EM_VALIDACAO = "VA"
STATUS_CHOICHES = (
(APROVADO, "Aprovado"),
(EM_VALIDACAO, "Em validação"),
)
values = models.DecimalField(decimal_places=2, max_digits=10, default=0)
cpf = BRCPFField("CPF")
status = models.CharField(max_length=20, choices=STATUS_CHOICHES, default=EM_VALIDACAO)
我正试图在我的视图集中这样做:
def get_queryset(self):
qs = super().get_queryset()
if self.action in ("update", "parcial_update", "delete"):
qs.filter(Purchases.status=="VA")
return qs
然而,他仍然允许编辑具有批准状态的订单。只能删除或编辑购买状态为";在"验证"中;
有人能帮我吗?
qs.filter(…)
[Django-doc]不过滤查询集qs
。它构造了一个新的查询集,该查询集是qs
的过滤变体。
因此,您应该返回已过滤的查询集,或者将结果分配给qs
:
def get_queryset(self):
qs = super().get_queryset()
if self.action in ('update', 'parcial_update', 'delete'):
returnqs.filter(Purchases.status=='VA')
return qs