【发布时间】:2023-03-31 03:35:02
【问题描述】:
假设我有 2 个模型,一个用户,另一个帖子。用户可以创建帖子。用户有一个名为“exp_pts”的字段作为 IntegerField。这意味着当用户创建帖子时增加 30。
我假设我必须在 PostSerializer 中使用 create() 方法。这是我当前的 Posts 序列化程序(由于 create() 方法未按预期工作,目前无法正常工作)
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('id', 'user', 'kingdom', 'post_type', 'file_path',
'title', 'description', 'created_at', 'updated_at')
def to_representation(self, instance):
data = super().to_representation(instance)
data['user'] = SimpleUserSerializer(
User.objects.get(pk=data['user'])).data
data['kingdom'] = KingdomSerializer(
Kingdom.objects.get(pk=data['kingdom'])).data
return data
# This is not yet working
def create(self, validated_data):
user = validated_data.pop('user')
user.exp_pts += 30
user.save()
return user
有什么方法可以做到以上几点?如果 create() 方法不够用,那么还有什么其他方法可以实现呢?非常感谢任何帮助。谢谢。
【问题讨论】:
标签: python django django-rest-framework django-serializer