【发布时间】:2019-07-27 05:07:55
【问题描述】:
您好,我正在尝试制作一个测试用例来测试我的上传图片 API。但我认为当我传递 request.FILES 的文件时我没有返回任何东西
#models.py
class Image(models.Model):
name = models.CharField(max_length=200)
imagefile = models.ImageField(
null=True,
blank=True,
max_length=500,
upload_to='temp/images/')
def __str__(self):
return self.name
#views.py
class ImagesView(APIView):
def post(self, request):
print("DATA!!!", request.data)
print("FILE!!!", request.FILES)
params = Image(
imagefile=request.FILES['image'])
params.save()
print(params)
return Response({"status": "ok"})
#test.py
class CanalImagesApiTests(TestCase):
fixtures = []
def test_post_image(self):
c = Client()
response = c.post('/admin/login/', {'username': 'admin', 'password': 'passwrd'})
filename = 'data/sample_image.jpg'
name = 'sample_image.jpg'
data = {"data": "passthis"}
print(to_upload)
with open(filename, 'rb') as f:
c.post('/images/', data=data, files={"name": name, "image": f}, format='multipart')
response = c.get('/images/')
results = response.json()
我的request.FILES 是空的:<MultiValueDict: {}>
我的测试出错:django.utils.datastructures.MultiValueDictKeyError: 'image'
【问题讨论】:
标签: python django post django-rest-framework django-testing