Django Basecrm
O aplicatie Django care se conecteaza la API-ul BaseCRM (v2)
Acest pachet este acum doar Python3 si accepta Django 1.11 si versiuni ulterioare. Pentru versiunile anterioare va rugam sa consultati ramura Python2.
O aplicatie usoara Django pentru a infasura biblioteca de cereri si a oferi puncte finale usoare pentru API-ul BaseCRM.
Retineti ca acesta nu este un SDK client complet ; este o aplicatie de ajutor care are functionalitatea de care aveam nevoie. Contributii acceptate cu recunostinta.
Modulul utils ofera o metoda request () care permite apeluri mai putine configuratii catre API-ul BaseCRM, bazandu-se pe setari, permitand totusi transmiterea si / sau suprascrierea tuturor optiunilor, atat pentru solicitari, cat si pentru punctul final API in sine. Exista, de asemenea, ajutoare pentru a analiza () si a numara () rezultatele (analiza elimina metadatele, in timp ce count returneaza paginarea de numarare a serverului).
Modulul de asistenti ofera, de asemenea, cateva metode de nivel superior pentru interactiunea cu contactele, ofertele, conductele si etapele punctelor finale (iar modulul de nivel superior __init__ le expune). Exista, de asemenea, o setare pentru recuperarea si stocarea in cache a etapelor pentru o conducta (doar 1 este acceptat in prezent).
Caracteristici
- Configurare redusa, astfel incat este usor sa apelati metodele API de oriunde din cod
- Validarea pre-depunere pentru apelurile CREATE si UPDATE va genera exceptii personalizate capturabile
- Serializatorii flexibili fac banale crearea obiectelor BaseCRM din obiectele Django ORM
Limitari actuale
- In prezent este acceptata doar o singura conducta.
- Etapele si conductele sunt, in mod implicit, stocate in cache la nivel de aplicatie (in memorie), fara nicio metoda de cachebusting expusa.
- Nu sunt implementate apeluri DELETE
- CREATE si UPDATE sunt implementate numai pentru contactele si punctele finale ale ofertelor
- GET este implementat numai pentru contacte, oferte, note, conducte si etape
- Serializatoarele sunt utilizate doar intr-un singur sens; nu se deserializeaza
- Probabil multe altele …
Instalare
Puteti instala Django-BaseCRM din PyPI cu …:
pip install –upgrade django-basecrm
Infiintat
Cel putin, va trebui sa adaugati urmatoarele la settings.py:
BASECRM_API_URL = ‘https: //api.getbase.com/v2/’ BASECRM_API_KEY = xxxx BASECRM_INSTANTIATE_ON_START = False # Daca acest lucru este setat la True, ID-ul conductei si ID-urile de etapa vor fi recuperate la pornirea aplicatiei pentru prima data si apoi tinut in memorie
… punerea propriei chei API in loc de xxx, obv.
porno friki maduras corriendose
torbe videos completos tv porno
nudismo porno vidios xxx
follando sin querer coñitos
travestis meando pilladas desnudas
guarras españolas videoxxx
intercambio de parejas en español videos travestis
videosgay penes grandes
videoxxx scat porno
incesto lesbianas porno trans
videos de chicas gratis gitana follando
descargar peliculas porno español madres incestuosas
xxxhd peliculas eroticas gratis
videos chicas gratis abuelas follando
abuelas españolas xxx pajas caseras
incesto abuela nieto naomi woods
videos porno subtitulados porno casero españa
la engaña para follar madre pajea a su hijo
videos porno morbosos maduras.com
videos porno tetonas gratis coños calientes
Retineti ca URL-ul API este pe deplin calificat, inclusiv protocolul si slash-ul final .
De asemenea, va trebui sa adaugati aceasta aplicatie la INSTALLED_APPS; nu conteaza cu adevarat unde (in ceea ce priveste comanda) ::
INSTALLED_APPS = [… ‘django_basecrm’, …]
Apoi, probabil veti dori sa extindeti serializatoarele pentru a satisface modelele dvs.
De exemplu, sa ne imaginam ca aveti o aplicatie numita persoane care contine un model de profil de utilizator personalizat numit Persoana, care reprezinta contactele pe care doriti sa le urmariti in baza.
Sa ne imaginam, de asemenea, ca modelul dvs. are un atribut pentru informatii, o @property pentru telefon si o relatie OneToOne cu User.
Creati people / serializers.py si lipiti urmatorul cod:
din django_basecrm import get_contacts, create_contact din django_basecrm.serializers import ContactModelSerializer class PersonSerializer (ContactModelSerializer): is_organization = False description = ‘info’ def get_email (self, obj): return object.user.email class Meta: model = ‘people.Person
Lucruri de retinut:
- Extindem ContactModelSerializer; exista si un DealModelSerializer care se comporta identic, dar este setat pentru campurile punctului final al ofertei
- Am setat campul is_organization la False in mod explicit; presupunand ca modelul dvs. nu are un camp (sau proprietate) cu acelasi nume, acest lucru nu va fi niciodata automat suprascris.
- Campul de descriere este setat pentru a obtine valoarea campului de informatii al obiectului dvs. in timpul rularii
- Campul telefonic va obtine in mod similar valoarea proprietatii telefonului obiectului dvs. in timpul rularii; nu trebuie sa-l specificam, deoarece campurile sunt denumite identic
- Campul de e-mail, desi nu este definit in mod explicit, va fi populat de valoarea returnata a metodei get_email. Orice metoda get_ * va avea intotdeauna prioritate in setarea valorii serializatorului pentru campul aferent.
- Atributul Meta.model este setat la un sir, cuprinzand atat numele_aplicatiei , cat si numele_modelului – orice alt format de sir va esua. Cu toate acestea, este posibila specificarea directa a unei clase (de exemplu, model = persoana).
- Retineti ca puteti specifica si campuri ca atribut pentru subclasa Meta; aceasta va inlocui lista campurilor serializatorului
Odata ce ati ajuns pana aici, trebuie sa apelati doar functiile, poate creati un modul in aplicatia dvs. de oameni pentru a oferi metode create_person_from_object si altele asemenea.
Un exemplu de functie get_or_create pentru un contact BaseCRM, utilizand modelele si serializatoarele de mai sus, ar putea arata ca:
def get_or_create_person (person_id): person = Person.objects.get (pk = person_id) base_contacts = django_basecrm.get_contacts (email = person.user.email)) if len (base_contacts)> 1: # Acest lucru nu ar trebui sa se intample daca aplicam unicitatea e-mailului in Django raise Exception () elif len (base_contacts) == 1: base_contact = base_contacts [0] else: serialized_person = PersonSerializer (person) # Acesta este serializatorul definit de noi mai sus base_contact = django_basecrm.create_contact (serialized_person) to ) returneaza contact_baza
A contribui
Contributiile sunt foarte binevenite. Va rugam sa furnizati si sa trimiteti cereri de extragere, cu toate codurile acoperite de testele unitare conform codului existent.








