0
request.data.get('answers_ids')
返回str '2'
而不是從APIClient數據發送的array ['1', '2']
。但是,當我從休息框架web-gui發送數據的所有作品。Django restframework發送發佈數據從測試APIClient中斷
使用:
- Django的== 1.10.4
- djangorestframework == 3.5.3
tests.py:
class ApiCompletePoll(APITestCase):
def setUp(self):
self.user = User.objects.create(
username='123',
password='123',
email='[email protected]'
)
self.client = APIClient()
self.client.credentials(
HTTP_AUTHORIZATION='Token ' + self.user.auth_token.key
)
def test_complete_poll(self):
data = {'poll_id': 1, 'answers_ids': [1, 2]} # SENT DATA
self.client.post(reverse('complete-poll'), data)
self.assertTrue(
CompletedPoll.objects.filter(
user=self.user, poll__id=data['poll_id']
)
)
views.py:
@api_view(http_method_names=['post', ])
def update_or_create_user_answers(request):
user = request.user
poll_id = request.data.get('poll_id', 0)
answers_ids = request.data.get('answers_ids', [])
print(list(request.data.items()), request.data, answers_ids) # GETTING DATA
輸出:
[('answers_ids', '2'), ('poll_id', '1')]
<QueryDict: {'answers_ids': ['1', '2'], 'poll_id': ['1']}>
2
THX,這樣可行 – waynee