Найти - Пользователи
Полная версия: Как поменять статус заказа в админке с помощью requests.
Начало » Python для новичков » Как поменять статус заказа в админке с помощью requests.
1 2
Tseka
 import requests
s = requests.Session()
s.auth = ('manager', 'pass')
s.headers.update({'x-test': 'true'})
s.headers.update({
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0'})
formData = {
  "address": "Город,ул. Миргородская д.39-а, кв.8",
  "comment": "",
  "coupon_discount": "0.00",
  "delivery_id": "3",
  "delivery_price": "0.00",
  "discount": "0.00",
  "email": "",
  "id": "99153",
  "nalozhka": "1",
  "name": "Алла ",
  "note": "наложка(И) + Отправка 07,09",
  "np_city": "Марин",
  "np_warehouse": "Отделение №2 (до 30 кг): ул. Пирсовая, 2а",
  "order_option": "nalozhka",
  "payment_method_id": "5",
  "phone": "38099хххххххх",
  "purchases[amount][127654]": "1",
  "purchases[id][127654]": "127654",
  "purchases[price][127654]": "260.00",
  "purchases[variant_id][127654]": "26419",
  "related": "",
  "separate_delivery": "1",
  "session_id": "hov62ku9iolsrmcv7mhhri8fj6",
  "status": "2",
  "ttn": "2ХХХХХХХХХХХХ4",
  "user_id": ""
}
url0 = 'здесь адрес входа в админку'
url='здесь адрес заказа в админке'
s.get(url0,headers=s.headers)
s.post(url,data=data,headers=s.headers,files=formData)
Vintets
Ты это не пробовал иначе заметил бы лишнее data=data

Ты вот жёстко прописал всё, а ничего если в новой сессии будет и новый “session_id”?
Сначала грузи эту страницу отдельным запросом. Вытаскивай “session_id”, а лучше все поля сразу. Меняй нужное и отправляй назад.

Попробуй отправить как указано в http://python.su/forum/post/183433/
Tseka
Vintets
Ты это не пробовал иначе заметил бы лишнее data=data
Пробую на ноуте через тиамвьювер на Андроиде , а отписываюсь со смартфона , так как вышел из офиса.

Приеду домой , попробую ещё раз как вы написали.
keodomir
Должно быть как-то так.
 import requests
s = requests.Session()
s.auth = ('manager', 'pass')
s.headers.update({'x-test': 'true'})
s.headers.update({
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0'})
data = {'status':'2'
        }
url0 = 'здесь адрес входа в админку'
#авторизуемся
otvet = s.get(url0,headers=s.headers)
#забираем из ответа
#id и session_id
files = {
	'id': ('', 99153),
	'session_id': ('', 'rho48g04hq58qot9ir5j13h711'),
	'status': ('', 2)
}
#генерируем адрес для post запроса
url='http://ххххххххххххххххххххххххх/index.php?module=OrderAdmin&page=2&id=' + id
r=s.post(url,data=files,headers=s.headers)

какие поля обязательные надо смотреть на стороне сервера и добавлять в files.
Tseka
 import requests
from bs4 import BeautifulSoup
s = requests.Session()
s.auth = ('manager', 'ПАРОЛЬ')
s.headers.update({'x-test': 'true'})
s.headers.update({
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0'})
url0 = 'http://АДРЕС САЙТА АДМИНКИ/'
url='http://АДРЕС САЙТА АДМИНКИ ЗАКАЗА'
s.get(url0,headers=s.headers)  #авторизуемся.
html=s.get(url,headers=s.headers)   #переходим авторизированные на страничку с заказом.
soup = BeautifulSoup(html.text, 'html.parser')  #парсим id и session_id , больше ничего не надо.
sesid=soup.findAll('input')[0]['value']
id_=soup.findAll('input')[1]['value']
files = {
	'id': ('', id_),
	'session_id': ('', sesid),     #подставляем спарсиные значения.
	'status': ('', 2)
}
s.post(url=url,data=files,headers=s.headers)    #post запрос посылаем  


Огромная благодарность всем , особенно keodomir и Vintets.
Tseka
PYTHON - Сила !!!
Tseka
Всё-таки необходимо спарсить все эти
 formData = {
  "address": "Город,ул. Миргородская д.39-а, кв.8",
  "comment": "",
  "coupon_discount": "0.00",
  "delivery_id": "3",
  "delivery_price": "0.00",
  "discount": "0.00",
  "email": "",
  "id": "99153",
  "nalozhka": "1",
  "name": "Алла ",
  "note": "наложка(И) + Отправка 07,09",
  "np_city": "Марин",
  "np_warehouse": "Отделение №2 (до 30 кг): ул. Пирсовая, 2а",
  "order_option": "nalozhka",
  "payment_method_id": "5",
  "phone": "38099хххххххх",
  "purchases[amount][127654]": "1",
  "purchases[id][127654]": "127654",
  "purchases[price][127654]": "260.00",
  "purchases[variant_id][127654]": "26419",
  "related": "",
  "separate_delivery": "1",
  "session_id": "hov62ku9iolsrmcv7mhhri8fj6",
  "status": "2",
  "ttn": "2ХХХХХХХХХХХХ4",
  "user_id": ""
}
значения и отправить post , а то у меня меняется статус на этом заказе, но всё остальное стирается . Получается пустой заказ от клиента
Vintets
Ну это уже реализация на сервере. У меня не стирается. Обновляются только поля которые существуют в запросе.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB