gpt4 book ai didi

django - 将模型中没有的计数字段添加到 GET 请求

转载 作者:行者123 更新时间:2023-12-02 07:03:39 25 4
gpt4 key购买 nike

我有一个枪的模型,每把枪都有多个负载

我想要做的是将负载计数添加到枪 GET 请求对象中,但不在模型本身中。因此,当我执行 GET 请求时,就会完成计数,并且如果可能的话,仅针对 GET 请求进行计数。否则我可以让 POST load_count = 0,因为没有这样的字段,不应该保存它。

class Gun(models.Model):
name = models.CharField(max_length=128)

class Load(models.Model):
gun = models.ForeignKey(Gun, related_name='gun')
foo = ...

序列化器:

class GunSerializer(serializers.HyperlinkedModelSerializer):
??? load_count = Field() -- reverse lookup and count loads
id = serializers.Field()
class Meta:
model = Gun
fields = ('id',"name", ???? "load_count")


class LoadSerializer(serializers.HyperlinkedModelSerializer):
id = serializers.Field()
class Meta:
model = Load

最佳答案

尝试使用 IntegerField 来设置计数:

class GunSerializer(serializers.HyperlinkedModelSerializer):
load_count = serializers.IntegerField(source='load_set.count')

class Meta:
model = Gun
fields = ('id', "name", "load_count")

但是,您在 Load 模型中使用了 gunlated_name,我建议将其更改为 loads (或者只是省略,然后使用默认的 load_set 并且上面的示例将起作用)。如果您想保留 gun 的相关名称,请将 load_count 序列化器字段定义为:

load_count = serializers.IntegerField(source='gun.count')

关于django - 将模型中没有的计数字段添加到 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19890193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com