我正在使用一些必须返回模型字段总和的模型.是否更好地覆盖模型上的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) 我有一个初始空对象,处于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) 我正在寻找有关如何按值对序列化字段进行排序/分组的建议。这是一个代码示例,解释了我想要实现的目标。
楷模
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)
我正在寻找一种序列化为此的方法: …