Как создать пользователя в Moodle Rest WS с помощью модуля запросов Python?
Я пытаюсь создать пользователя с помощью сервера Moodle Webservices - Rest, но я застрял на проверке params: S мой код следующий:
import requests
token = 'TOKENNUMBER'
function = 'core_user_create_users'
url = 'http://localhost/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsformat=json'.format(token,function)
user1 = {'email': '[email protected]','firstname': 'firstname',
'lastname': 'lastname', 'createpassword': 1,
'username': 'username'}
Затем я пытаюсь опубликовать данные (двумя различными способами):
requests.post(url,data={'users': user1})
requests.post(url,data={'users': [user1,]})
И Moodle keeping возвращают ошибку:
Only arrays accepted. The bad value is: 'username'</DEBUGINFO>
В документации (доступной из собственного moodle), ее изложили:
Argumentos
users (Obrigatório)
Estrutura geral
list of (
object {
username string //Username policy is defined in Moodle security config.
password string Opcional //Plain text password consisting of any characters
createpassword int Opcional //True if password should be created and mailed to user.
firstname string //The first name(s) of the user
lastname string //The family name of the user
email string //A valid and unique email address
auth string Padrão para "manual" //Auth plugins include manual, ldap, imap, etc
idnumber string Padrão para "" //An arbitrary ID code number perhaps from the institution
lang string Padrão para "pt_br" //Language code such as "en", must exist on server
calendartype string Padrão para "gregorian" //Calendar type such as "gregorian", must exist on server
theme string Opcional //Theme name such as "standard", must exist on server
timezone string Opcional //Timezone code such as Australia/Perth, or 99 for default
mailformat int Opcional //Mail format code is 0 for plain text, 1 for HTML etc
description string Opcional //User profile description, no HTML
city string Opcional //Home city of the user
country string Opcional //Home country code of the user, such as AU or CZ
firstnamephonetic string Opcional //The first name(s) phonetically of the user
lastnamephonetic string Opcional //The family name phonetically of the user
middlename string Opcional //The middle name of the user
alternatename string Opcional //The alternate name of the user
preferences Opcional //User preferences
list of (
object {
type string //The name of the preference
value string //The value of the preference
}
)customfields Opcional //User custom fields (also known as user profil fields)
list of (
object {
type string //The name of the custom field
value string //The value of the custom field
}
)}
)
Итак, имея это в виду, как я могу создать пользователя Moodle с помощью модуля запросов python? Что не так с данными, которые прошел ли он?
1 ответ:
Чтобы использовать сервис REST в Moodle, параметры для работы должны быть сформированы в плоском словаре. Структура аргументов отражается в названиях ключей. В вашем примере у вас есть один аргумент курсы , который является списком. Итак, ключами вашего словаря будут курсы [0]электронная почта, курсы[0]firstname , ... для первого пользователя, и курсы [1]электронная почта, курсы[1]firstname , ... для второго и так далее
users = {'users[0]email': '[email protected]', 'users[0]firstname': 'firstname', 'users[0]lastname': 'lastname', 'users[0]createpassword': 1, 'users[0]username': 'username'} requests.post(url,data=users)
Comments