在将此标记为重复项之前,我研究了以下问题:
Django Rest framework Serialize many to many field
Django rest framework serializing many to many field
我测试时没有显示付款结果。
serializers.py
class PayinsSerializer(serializers.ModelSerializer):
class Meta:
model = Payins
fields = '__all__'
class UserStokvelSerializer(serializers.ModelSerializer):
payins = PayinsSerializer(many=True)
class Meta:
model = Stokvel
fields = '__all__'
models.py
class Payins(models.Model):
payin_date = models.DateField(default=timezone.now)
payin_by = models.ForeignKey(User, on_delete=models.CASCADE)
stokvel_payin = models.ForeignKey('Stokvel', on_delete=models.CASCADE, related_name="payin_user")
payin_amount = models.IntegerField()
def save(self, *args, **kwargs):
stokvel = Stokvel.objects.get(id = self.stokvel_payin.id)
stokvel.balance += self.payin_amount
stokvel.save()
super(Payins, self).save(*args, **kwargs)
class Stokvel(models.Model):
stokvel_name = models.CharField(max_length=55)
balance = models.IntegerField(default = 0)
payouts = models.ManyToManyField(Payouts, related_name="stokvel_payouts")
payins = models.ManyToManyField(Payins, related_name="stokvel_payins")
group_admin = models.ForeignKey(User, on_delete=models.CASCADE, related_name="stokvel_group_admin")
users = models.ManyToManyField(User, related_name="stokvel_users")
invite_key = models.CharField(default = secrets.token_hex(15), max_length=55)
答案 0 :(得分:0)
可以使用this guide来解决:
通过修改此示例:
class TrackSerializer(serializers.ModelSerializer):
class Meta:
model = Track
fields = ('order', 'title')
class AlbumSerializer(serializers.ModelSerializer):
tracks = TrackSerializer(many=True)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')