관련 모델에서 필드를 직렬화하는 방법.Django Rest Framework 프레임 크기 조절
class Order(models.Model):
order_id = models.BigIntegerField(verbose_name='Order ID', unique=True)
order_name = models.CharField(verbose_name='Order name', max_length=255)
order_type = models.IntegerField(verbose_name='Campaign type')
class Types(models.Model):
delimiter = models.CharField(verbose_name='Delimiter', max_length=255)
status = models.BooleanField(verbose_name='Status', default=True)
title = models.CharField(verbose_name='Title', max_length=255)
class User(models.Model):
name = models.CharField(verbose_name='User name', max_length=200, unique=True)
class Report(models.Model):
order = models.ForeignKey(Order, to_field='order_id', verbose_name='Order ID')
user = models.ForeignKey(User, verbose_name='User ID')
ad_type = models.ForeignKey(Types, verbose_name='Type')
imp = models.IntegerField(verbose_name='Total imp')
month = models.DateField(verbose_name='Month', default=datetime.datetime.today)
보기 :
class ReportLisAPIView(ListAPIView):
serializer_class = ReportSerializer
def get_queryset(self):
month = parse_date(self.kwargs['month']) - relativedelta(day=1)
queryset = (
Report.objects.filter(month=month)
.values_list(
'user', 'user__name', 'order__order_id',
'order__order_name', 'order__order_type'
).all().annotate(Sum('imp'))
)
return queryset
시리얼 : 나는 get_queryset에 '의 검색어'처럼 모든 필드를 얻을 필요가
class ReportSerializer(ModelSerializer):
class Meta:
model = Report
depth = 1
()
은 내가 모델을 가지고 오류가 발생했습니다.Got AttributeError when attempting to get a value for field
imp
on
serializerReportSerializer
. The serializer field might be named incorrectly and not match any attribute or key on thetuple
instance. Original exception text was: 'tuple' object has no attribute 'imp'.
그러나 get_queryset()에서 반환하면 Report.objects.filter (월 = 월) .all() 모든 개체 및 모든 필드와 관련된 개체를 가져올거야, imp 및 그룹화 집계없이.
그래서 질문은 queryset에 설정된 serializer 반환 구조를 만드는 방법입니까?
설명 ... – marcusshep
죄송합니다. 내 대답에 설명을 추가했습니다. – user2160537