Как фильтровать данные из двух классов 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)