1
私はEvent
というdjangoモデルを持っています。これはCustomer
モデルを参照しています。Django rest frameworkは1対多の関係データを取得します
event_name = models.CharField(max_length=200, unique=True)
customer = models.ForeignKey(customer_models.Customer, db_index=True,
on_delete=models.SET_NULL,
related_name='customer_events', null=True)
event_location = models.CharField(max_length=200, default='')
event_date = models.DateField()
APIの各ユーザーの最新のイベント名とともに顧客リストを取得する必要があります。
カスタマーserializers.pyファイルは
class CustomerSerializer(serializers.ModelSerializer):
class Meta:
model = Customer
fields = '__all__'
カスタマーviews.pyファイルが、私はこれを実現するにはどうすればよい
class CustomerViewSet(viewsets.ModelViewSet):
queryset = Customer.objects.all()
serializer_class = CustomerSerializer
あるのですか?あなたはその後、latest_event_name
ためReadOnlyField
を追加することができ、あなたのシリアライザでは
class Customer(models.Model):
...
@property
def latest_event_name(self):
"""Return latest event name."""
# self.customer_events.order_by('event_date').last()
latest_event = self.customer_events.order_by('-event_date').first()
return latest_event.event_name if latest_event else None
:あなたはCustomerインスタンスの最新のイベント名を返しproperty
を持つことができ、あなたのCustomer
モデルで
感謝出来た。 –