考虑一个具有可空文件字段的模型。在处理FileField时,我遇到了Django的ModelForm的一个令人困惑的行为。我注意到,当FileField接收到一个空字符串('')作为文件数据时,ModelForm的cleaned_data字典会为该字段返回None而不是''。
此外,我还观察到另一个相关行为:如果我有两个条目Model.objects.create()
和Model.objects.create(file='')
Model.objects.filter(file__isnull=True)
将返回空queryset,Model.objects.filter(file='')
将返回两个条目
1条答案
按热度按时间8iwquhpp1#
对于您的第一个问题,这是预期的行为。如果你传递一个空值给
FileField
,它将返回None。FileField
的代码如下:你可能应该传递一个文件对象给一个
FileField
!