Necesito hacer una eliminación y actualización según el estado.
Aquí hay modelos:
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)Estoy tratando de hacer esto en mi vista:
def get_queryset(self): qs = super().get_queryset() if self.action in ("update", "parcial_update", "delete"): qs.filter(Purchases.status=="VA") return qsSin embargo, todavía permite editar los pedidos con el estado aprobado. Solo se puede eliminar o editar compra con estado "En validación"
¿Alguien me puede ayudar?
qs.filter(…) [Django-doc] no filtra el conjunto de consultas qs . Construye un nuevo conjunto de consultas que es la variante filtrada de qs .
Por lo tanto, debe devolver el conjunto de consultas filtrado o asignar el resultado a qs :
def get_queryset(self): qs = super().get_queryset() if self.action in ('update', 'parcial_update', 'delete'): return qs.filter(Purchases.status=='VA') return qs