python - 按 Django 中的 is_active bool 字段过滤

标签 python django filter

我想为我的应用程序中的所有模型设置一个 is_active 字段,每当我创建一个 api 时,我只想过滤事件的模型并发送响应。有没有通用的方法来做到这一点?截至目前,我保留了一个 boolean 字段 is_active 并且每次检索对象时,我都在编写一个过滤器。下面是代码:

我的models.py

class Crew(models.Model):
    crew_id = models.AutoField(primary_key=True)
    crew_code = models.CharField(max_length=200, null=False, unique=True)
    crew_name = models.CharField(max_length=200, null=False)
    crew_password = models.CharField(max_length=200, null=False)
    is_active = models.BooleanField(default=True)

我的views.py:

@api_view(['GET'])
def get_crews(request):
    c = Crew.objects.filter(is_active=True)
    serializer = CrewSerializer(c, many=True)
    return Response(serializer.data, status=status.HTTP_200_OK)

最佳答案

你可以写custom model manager :

class IsActiveManager(models.Manager):
    def get_queryset(self):
        return super(IsActiveManager, self).get_queryset().filter(is_active=True)

class Crew(models.Model):
    ...
    objects = IsActiveManager()

现在 Crew.objects.all() 将只返回 is_active 记录。

关于python - 按 Django 中的 is_active bool 字段过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44924404/

相关文章:

python - 将返回的元组分配给数组的不同列

python - 守护程序 PID 锁定错误

python - 如何在不抛出错误的情况下避免 MySQL 数据库中的重复条目

python - Pandas 格式 datetimeindex 到季度

python - 提交值后更新预览字段

c# - 在 MVVM (WPF) 应用程序中更改 ListView 上的筛选器后如何滚动到 View ?

javascript - 每次迭代时对之前的总计值求和 - Angularjs

javascript - 查找包含值的嵌套对象

django - django 形式的多个复选框

python - Django 存储实际可用性并查询新预订的可用时间表