小编Sus*_*rak的帖子

将参数传递给序列化程序 DRF

好吧,我正在努力向序列化程序类发送参数,我的代码如下所示:

模型.py

class Transaction(models.Model):
    owner = models.ForeignKey(User, on_delete=models.SET("DELETED"), related_name='transactions')
    date = models.DateField(auto_now_add=True)
    concept = models.CharField(max_length=100)
    value = models.DecimalField(max_digits=10, decimal_places=2)
    total = models.DecimalField(max_digits=10, decimal_places=2)
Run Code Online (Sandbox Code Playgroud)

序列化程序.py

class TransactionSerializer(serializers.ModelSerializer):
    total = serializers.ReadOnlyField(source='new_total')
    owner = serializers.ReadOnlyField(source='owner.username')

    class Meta:
        model = Transaction
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

视图.py

class TransactionHandler(viewsets.ModelViewSet):
    queryset = Transaction.objects.all()
    serializer_class = TransactionSerializer

    def perform_create(self, serializer):
        last_transaction = Transaction.objects.latest('id')
        new_total = last_transaction.total + Decimal(self.request.data['value'])
        serializer.save(owner=self.request.user, new_total=new_total)
Run Code Online (Sandbox Code Playgroud)

当在 serializer.save() 方法中时,只有所有者参数一切正常,但是当我添加第二个参数时,一切都会变得混乱

python django serialization django-rest-framework

4
推荐指数
1
解决办法
951
查看次数

检查所有可变参数的 sizeof 是否相同

我希望能够在编译时使用 检查类的static_assert所有可变参数是否以相同的大小创建。

这是我想出的代码,但它不起作用:

template<typename... Args>
class MyClass {
    static size_t arg_reference_size;

    constexpr static bool size_is_equal() {
        return true;
    }

    template<typename First, typename... Others>
    constexpr static bool size_is_equal() {
        return arg_reference_size == sizeof(First) && size_is_equal<Others...>();
    }

    template<class First, typename... Others>
    constexpr static bool check_args_size() {
        arg_reference_size = sizeof(First);
        return size_is_equal<Others...>();
    }

    static_assert(size_is_equal<Args...>(), "");
}
Run Code Online (Sandbox Code Playgroud)

c++ variadic-templates

3
推荐指数
1
解决办法
157
查看次数