Как фильтровать данные из двух классов django

У меня есть два класса Django, я хочу фильтровать VCDUnavailAudit по site_key в методе Django Get, как я могу это сделать

enter code here
class VCDUnavailAudit(models.Model):
    user_key = models.IntegerField()
    user_name = models.CharField(max_length=40)
class User(models.Model):
    user_key = models.AutoField(primary_key=True)
    site_key = models.IntegerField() 
@api_view(['GET'])
def get_unavail_audit_records_by_site(request, site_key: int):
    availability_audit_records = VCDUnavailAudit.objects.filter
    serializer = VCDUnavailAuditSerializer(availability_audit_records, many=True)
    return Response(serializer.data, status=status.HTTP_200_OK)

Сначала создайте список всех user_keys, собранных от пользователей, которые имеют заданные site_key.

user_keys = [user.user_key for user in User.objects.filter(site_key=site_key)]

Затем получите все записи аудита доступности, которые имеют свои user_key, включенные в список ключей пользователя.

audits = VCDUnavailAudit.objects.filter(user_key__in=user_keys)

Полный просмотр:

@api_view(['GET'])
def get_unavail_audit_records_by_site(request, site_key: int):
    user_keys = [user.user_key for user in User.objects.filter(site_key=site_key)]
    audits = VCDUnavailAudit.objects.filter(user_key__in=user_keys)
    serializer = VCDUnavailAuditSerializer(audits, many=True)
    return Response(serializer.data, status=status.HTTP_200_OK)
Вернуться на верх