从官方教程:
componentWillUnmount()在卸载和销毁组件之前立即调用.在此方法中执行任何必要的清理,例如使计时器无效,取消网络请求或清除在中创建的任何DOM元素componentDidMount
我理解"使计时器无效".fetch可以中止AbortController.但我不明白"清理任何创建的DOM元素componentDidMount",我能看到这种情况的例子吗?
我是DRF的新手.我阅读了API文档,也许它没有注意到,但我找不到一个方便的方法来做到这一点.
我有一个Answer对象与问题有一对一的关系.
在前端我曾经使用POST方法创建一个发送到api/answers的答案,并将PUT方法更新发送到例如api/answers/24
但我想在服务器端处理它.我只会向api/answers发送POST方法,如果对象存在,DRF将根据answer_id或question_id(因为它是一对一)进行检查.如果是,它将更新现有的,如果不是,它将创建一个新的答案.
我应该在哪里实现它,我无法弄明白.在序列化程序或ViewSet或其他内容中覆盖create?
我的模型,序列化器和视图如下:
class Answer(models.Model):
question = models.OneToOneField(
Question, on_delete=models.CASCADE, related_name="answer"
)
answer = models.CharField(
max_length=1, choices=ANSWER_CHOICES, null=True, blank=True
)
class AnswerSerializer(serializers.ModelSerializer):
question = serializers.PrimaryKeyRelatedField(
many=False, queryset=Question.objects.all()
)
class Meta:
model = Answer
fields = ("id", "answer", "question")
class AnswerViewSet(ModelViewSet):
queryset = Answer.objects.all()
serializer_class = AnswerSerializer
filter_fields = ("question", "answer")
Run Code Online (Sandbox Code Playgroud) https://docs.djangoproject.com/en/1.10/topics/migrations/
它说:“就模式支持而言,PostgreSQL是这里所有数据库中功能最强大的;唯一的警告是,添加具有默认值的列将导致表的完全重写,时间长短与表的大小成正比。
“因此,建议您始终使用null = True创建新列,因为这样将立即添加它们。”
我问我是否正确。据我了解,我应该先创建一个null = True且没有默认值的字段,然后迁移它,然后再给它一个默认值并再次迁移它,这些值将立即添加,但是否则整个数据库将被重写并Django迁移不想自己解决问题吗?
首先,我找不到解决整个问题的问题。
我曾经比较过这样的数组:
array.sort((a, b) => {
return a.localeCompare(b, undefined, {numeric: true, sensitivity: 'base'})
})
Run Code Online (Sandbox Code Playgroud)
但是我意识到它不适用于像这样的数组['a', 'A', 'B', -1.50', '0', '1.50', '-2', '2']。
预期输出为:['-2', '-1.50', '0', '1.50', '2', 'A', 'a', 'B']。
我有一些肮脏的想法可以实现它。但是也许有一种干净便捷的方法。
我一直在尝试使用这个库:https : //github.com/xkeshi/image-compressor
从那里的例子:
new ImageCompressor(file, {
quality: .6,
success(result) {
...
},
error(e) {
...
},
});
Run Code Online (Sandbox Code Playgroud)
我想将此函数包装在一个名为 compress 的异步函数中以使用它,例如:
const compressed file = await compress(file)
Run Code Online (Sandbox Code Playgroud) 我有一个带有自参考字段的模型,称为parent。模型:
class Zone(BaseModel):
name = models.CharField(max_length=200)
parent = models.ForeignKey('self', models.CASCADE, blank=True, null=True, related_name='children')
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
序列化器:
class ZoneSerializer(ModelSerializer):
parent = PrimaryKeyRelatedField(many=False, queryset=Zone.objects.all())
parent_disp = StringRelatedField(many=False, source="parent")
class Meta:
model = Zone
fields = ('id', 'name', 'parent', 'parent_disp')
Run Code Online (Sandbox Code Playgroud)
现在,我要序列化区域的父级及其父级和它的父级,直到父级为none。我发现了针对孩子而不是父母的递归序列化方法。我怎样才能做到这一点?
django ×3
javascript ×3
python ×3
ecmascript-6 ×1
es6-promise ×1
postgresql ×1
reactjs ×1
recursion ×1