models.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-framework来创建用于上传和检索.bin
文件的最新版本的API。 API正常运行,我可以在服务器上上传.bin
个文件。但是当再次下载文件时,即使名称url是最新上传的文件,服务器也会返回第一个上传的文件(最旧的文件)。但有时很少会返回最新的文件。我检查了服务器文件,它们正在正确上传。这是因为Django的一些缓存还是我错过了什么?请帮忙。
答案 0 :(得分:0)
您的代码非常清楚地在first()
中的查询集上调用GetFWView
,所以我不确定为什么这种行为会让您感到惊讶。如果你想总是返回最新的,那么你应该这样做:
def get_object(self):
lastest_fw = FWVersion.objects.latest('date_created')
另外,您不应该为该视图使用ViewSet;它只支持一个操作,即GET,所以你应该使用RetrieveAPIView。
答案 1 :(得分:0)
Set-WmiInstance -Class TestShare -Puttype CreateOnly -Argument @{Name = "TestShare" ; Permissions = "TestPermission"}