小编And*_*eas的帖子

Django模型,使用属性覆盖save方法或自定义方法

我正在使用一些必须返回模型字段总和的模型.是否更好地覆盖模型上的save方法或仅创建返回总和的自定义方法.两种解决方案都存在性能问题吗?

选项1:覆盖保存方法.

class SomeModel(models.Model):
    integer1 = models.IntegerField()
    integer2 = models.IntegerField()
    integer3 = models.IntegerField()

    sum_integers = models.IntegerField()

    def save(self, *args, **kwargs):
        self.sum_integers = sum(
            [self.integer1, self.integer2, self.integer3])
        self.sum_integers.save()
        return super(SomeModel, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

选项2:自定义方法

class SomeModel(models.Model):
    integer1 = models.IntegerField()
    integer2 = models.IntegerField()
    integer3 = models.IntegerField()

    @property
    def sum_integers(self):
       return sum([self.integer1, self.integer2, self.integer3])
Run Code Online (Sandbox Code Playgroud)

python django django-models

8
推荐指数
1
解决办法
832
查看次数

如何检查Vuex状态对象是否为空

我有一个初始空对象,处于Vuex状态,可以从API更新。

const state = {
  someObject: {}
}
Run Code Online (Sandbox Code Playgroud)

如何检查模板中的对象是否为空?

<template>
  <div v-if="someObject">
    This should not display when someObject is empty.
  </div>
</template>
Run Code Online (Sandbox Code Playgroud)

检查状态对象是否已设置/为空的最佳实践是什么?

someObject: null/undefined/false即使应该使用新对象进行更新,我也应该进行初始设置吗?

进行吸气剂检查是否有意义?

export const someObject = state => Object.getOwnPropertyNames(state.someObject).length == 0 ? state.someObject : false
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vuex

6
推荐指数
2
解决办法
5312
查看次数

如何使用Django Rest Framework对序列化字段进行排序

我正在寻找有关如何按值对序列化字段进行排序/分组的建议。这是一个代码示例,解释了我想要实现的目标。

楷模

class Folder(models.Model):
    name = models.CharField()


class File(models.Model):
    filetype = models.CharField()
    name = models.CharField()
    folder = models.ForeignKey(Folder)
Run Code Online (Sandbox Code Playgroud)

序列化器

class FileSerializer(serializers.ModelSerializer):

    class Meta:
        model = File
        fields = ('id', 'filetype', 'name')


class FolderSerializer(serializers.ModelSerializer):

    files = FileSerializer(read_only=True)

    class Meta:
        model = Folder
        fields = ('name', 'files')
Run Code Online (Sandbox Code Playgroud)

这序列化为:

{
    "name": "Test Folder",
    "files": [
        {"id": 1, "filetype": "pdf", "name": "some pdf file"}.
        {"id": 2, "filetype": "pdf", "name": "some other pdf file"},
        {"id": 3, "filetype": "txt", "name": "some text file"}
    ]
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种序列化为此的方法: …

python django serialization django-rest-framework

5
推荐指数
1
解决办法
2289
查看次数