tastypie api不支持上传文件,所以我必须使用普通视图功能,查看我的other question
这是我的图片资源
class ImageResource(ModelResource):
album = fields.ForeignKey(AlbumResource, 'album')
upload_by = fields.ForeignKey(UserResource, 'upload_by')
class Meta:
always_return_data=True
filtering = {
"album": ('exact',),
}
queryset = Image.objects.all()
cache = SimpleCache(timeout=100)
resource_name = 'image'
authorization = ImageAuthorization()
现在假设我在普通视图功能中上传图像,因为我将缓存超时设置为100秒,浏览器不会在100秒内更新查询。
我想要的是浏览器在上传图片后立即更新查询,如果没有任何更改,请将缓存超时保持为100秒。这必须在普通视图功能中完成。
我该怎么做?
答案 0 :(得分:0)
如果您愿意,可以手动清除缓存。 Tastypie的缓存键看起来像这样(如果你使用的是simpleCache)
def generate_cache_key(self, *args, **kwargs):
"""
Creates a unique-enough cache key.
This is based off the current api_name/resource_name/args/kwargs.
"""
smooshed = []
for key, value in kwargs.items():
smooshed.append("%s=%s" % (key, value))
# Use a list plus a ``.join()`` because it's faster than concatenation.
return "%s:%s:%s:%s" % (self._meta.api_name, self._meta.resource_name, ':'.join(args), ':'.join(smooshed))
(直接来自目前第1031行的the code)
你可以在shell中玩游戏,以确保你正在寻找你正在寻找的对象。一旦你有了这个,只需在上传文件时删除该条目。