- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的网络应用程序创建一些自动化测试,它使用 Django 和 DRF 作为后端来处理来自前端的请求。
我在寻找使用客户端向 API 发送一些表单数据的方法时遇到了麻烦,我收到一个错误,指出没有发布任何字段。
这是我使用 APITestCase 类的尝试:
from django.test import TestCase, TransactionTestCase
from django.core.exceptions import ObjectDoesNotExist
from django.urls import reverse
from rest_framework.test import APIRequestFactory, APITestCase, APIClient, RequestsClient, APITransactionTestCase
import json, os, re
import requests as python_requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
....
....
def testInvoiceUploadAndRead(self):
#test non-logged in user
response=self.client.get(reverse("invoiceupload"))
self.assertEqual(response.status_code, 403)
user=Account.objects.get(username="test_user")
self.client.login(username=user.username, password="rebar123")
response=self.client.get(reverse("invoiceupload"))
self.assertEqual(response.status_code, 405)
#create the invoice
full_filename=os.path.join("media", "testfiles", "sample_file.png")
invoice = MultipartEncoder(
fields={
"invoicefile":("test_file.png", open(full_filename, "rb")),
"debtor":"5560360793",
"amount":"55000",
"serial":"1234567890",
"dateout":"20180728",
"expiration":"20180808",
}
)
response=self.client.post(reverse("invoiceupload"), invoice, content_type="multipart/form-data")
print(response.data["message"])
self.assertEqual(response.status_code, 201)
我收到错误:
{'debtor': [ErrorDetail(string='This field is required.', code='required')], 'invoicefile': [ErrorDetail(string='No file was submitted.', code='required')], 'expiration': [ErrorDetail(string='This field is required.', code='required')], 'dateout': [ErrorDetail(string='This field is required.', code='required')], 'amount': [ErrorDetail(string='This field is required.', code='required')], 'serial': [ErrorDetail(string='This field is required.', code='required')]}
未检测到内容已发送,关于如何修复它的任何想法,或完成相同事情的更好方法?
最佳答案
通过更仔细地阅读文档解决了这个问题,如果没有内容类型传递给 post 方法,它会自动设置 multipart/form-data,我的观点接受了。
变化:
invoice = {
"invoicefile":(open(full_filename, "rb")),
"debtor":"5560360793",
"amount":"55000",
"serial":"1234567890",
"dateout":"20180728",
"expiration":"20180808",
}
response = self.client.post(reverse("invoiceupload"), invoice)
self.assertEqual(response.status_code, 201)
关于python - Django Rest Framework - 将带有文件和其他数据的多部分/表单数据发送到 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51574998/
我一直在开发一个 .NET 字符串格式化库来协助应用程序的本地化。它称为 SmartFormat 并在 GitHub 上开源. 它试图解决的问题之一是 Grammatical Numbers .这也称
leetcode关于单数II的题目是: 给定一个整数数组,除一个元素外,每个元素出现三次。找到那一个。笔记:您的算法应该具有线性运行时复杂度。你能在不使用额外内存的情况下实现它吗? 其实我已经从网站上
我想知道创建/命名模型的首选方法是什么? 我的应用程序有一个“用户”模型,其中包含用于创建、获取、更新(等)用户记录的所有相关业务逻辑。 在我的一些 Controller 中,我可能想要获取多个“用户
在我的 Mysql 数据库中,我有一个术语列表,例如(首字母大写,大多数时候是复数) Hairdressers Restaurants Beauty Salons Fournitures For Re
如果我决定为我的所有路线名称使用复数形式,但某些资源仅作为一个东西存在,您是否将其保持为单数(更直观)或尊重使用复数的决定并保持这种方式? 我们正在用 PHP 为我们的客户门户网站设计一个新的 API
我可能在做一些愚蠢的事情,但是...... 应用/模型/user.rb: class User 然后,当我导航到 /users/123/totem/new 时,出现错误: ActionView::
您能否澄清一些 Matplotlib 术语: “subplots”(或“subplot”?)这个词是“axes”的同义词吗? “轴”和“轴”的单数/复数是什么? 最佳答案 这确实是一个令人困惑的问题。
我有一个 profile我的应用程序中的模型。我想允许用户通过 /profile 查看他们自己的个人资料,所以我创建了这条路线: resource :profile, :only => :show 我
我是一名优秀的程序员,十分优秀!