型号。py:
class FWVersion(models.Model):
bin_file = models.FileField(upload_to='fW_media/bin/')
date_created = models.DateTimeField(default=timezone.now)
name = models.CharField(max_length=64)
serializers.py:
class UploadFWSerializer(serializers.ModelSerializer):
class Meta:
model = FWVersion
exclude = ('date_created',)
class GetFWSerializer(serializers.ModelSerializer):
class Meta:
model = FWVersion
fields = ('name', 'bin_file',
)
views.py:
class GetFWView(viewsets.ModelViewSet):
queryset = FWVersion.objects.all()
serializer_class = serializers.GetFWSerializer
def get_object(self):
lastest_fw = FWVersion.objects.first()
return lastest_fw
class UploadFWView(mixins.CreateModelMixin,
generics.GenericAPIView):
serializer_class = serializers.UploadFWSerializer
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
我正在使用django rest框架创建用于上载和检索.bin
文件最新版本的API。API正在工作,我可以在服务器上上传.bin
文件。但当再次下载文件时,服务器返回第一个上载的文件(最旧的文件),即使名称、url是最新上载的文件。但有时很少返回最新的文件。我已经检查了服务器文件,它们正在正确上传。这是因为Django的一些缓存还是我遗漏了什么?请帮忙
您的代码非常清楚地调用了
GetFWView
中查询集上的first()
,因此我不知道为什么这种行为会让您感到惊讶。如果要始终返回最新的,则应执行以下操作:另一方面,您不应该为该视图使用视图集;它只支持一个操作,即GET,因此您应该只使用RetrieveAPIView
相关问题 更多 >
编程相关推荐