OneToOne関係を持つDjangoモデルの場合、Django Restフレームワークシリアライザ&ビューをどのように設定すれば、APIコンシューマに現金で支払い、すべてのCRUD機能を使用できますか?OneToOne関係を持つモデル用のDRFシリアライザ
私はthis SO Question hereに従ってみましたが、その機能を複製できないようです。
モデル
class Payment(models.Model):
"""
Payment Log
"""
merchant = models.ForeignKey(Entity, on_delete=models.CASCADE, related_name="%(app_label)s_%(class)s_merchant")
customer = models.ForeignKey(Entity, on_delete=models.CASCADE, related_name="%(app_label)s_%(class)s_customer")
payment_method = models.ForeignKey(PaymentMethod, on_delete=models.CASCADE)
trx_amount = models.DecimalField(max_digits=10, decimal_places=3)
class PaymentCash(models.Model):
"""
Cash payments
"""
payment = models.OneToOneField(Payment, on_delete=models.CASCADE, primary_key=True)
date_paid = models.DateField()
# Other fields
class PaymentCheque(models.Model):
"""
Cheque deposits
"""
payment = models.OneToOneField(Payment, on_delete=models.CASCADE, primary_key=True)
cheque_number = models.CharField(max_length=50)
# Other fields
サンプル・ビュー
class PaymentCashViewSet(ListCreateRetrieveUpdateViewSet):
"""
Cash payment view
"""
queryset = PaymentCash.objects.all()
serializer_class = PaymentCashSerializer
permission_classes = (IsAuthenticated, HasPermission)
現在のシリアライザ このかかわらず支払いモデル内のすべてのフィールドを使用しません。使用
class PaymentCashSerializer(serializers.ModelSerializer):
"""Serialize model"""
class Meta:
model = PaymentCash
fields = ('payment', 'date_paid')
:Djangoの== 1.10.2 & djangorestframeworkの==を3.5.1
対応するシリアライザを表示できますか? – Nifled
現金支払いのシリアライザを追加しました – lukik