Generează obiecte JavaScript din modelele Django

Am efectuat o mulțime de activități JavaScript în browser și aș dori să am o parte din această funcționalitate backend în front-end. În mod specific, ar fi bine să aveți funcțiile get() , save() , /code> la dispoziția clientului. În plus, ar fi minunat ca lista de câmp a modelului să fie deja disponibilă în obiectul JavaScript generat.

Dacă utilizatorul curent poate citi sau scrie înregistrările este o problemă separată, mă voi ocupa de utilizarea autentificării lui Django. Pentru moment, recuperarea ar fi un început.

Pe scurt, există cod care ar genera un model JavaScript dintr-un model Django?

Mulțumiri.

5

5 răspunsuri

Se pare că sunteți în căutarea unei interfețe JavaScript complete pentru API-urile model și queryset. Nu-mi pot imagina că acest lucru ar fi fost vreodată făcut sau chiar ar fi o sarcină simplă. Nu numai că ar trebui să generați cumva variante JavaScript de modele (mult mai mult decât oferă serializarea JSON, deoarece doriți și metodele), dar va trebui să expuneți un serviciu web care poate gestiona orice tip de apel DB-API. Nici măcar nu pot să îmi imaginez de unde să încep și problemele de securitate ar putea fi prea numeroase pentru a depăși cu ușurință.

Abordarea alternativă (și mult mai simplă) ar fi folosirea unuia dintre diferitele module Django REST și serializarea JSON. Ați putea efectua o solicitare AJAX GET pe o resursă, care poate fi identificată printr-o serie de parametri de interogare care ar fi echivalenți cu filtrele queryset înlănțuite. Aceasta va returna reprezentarea JSON a valorilor modelului. Apoi puteți modifica obiectul JavaScript și puteți folosi o cerere AJAX POST supraîncărcată pentru a menține modificările înapoi la server. Nu ați avea acces la metodele modelului, astfel încât funcționalitatea ar trebui să fie reimplementată, dar orice modificare a unui model ar trebui să fie suficient de simplă - Acesta este în esență echivalentul JavaScript de a utiliza un formular HTML pentru a modifica datele.

7
adăugat
Da, cred că aceasta este abordarea corectă. Poate doriți să citiți jacobian.org/writing/rest-worst-practices probabil înainte de a începe, totuși.
adăugat autor Density 21.5, sursa

You need a data serializer. You can do it with django built in serializers. It is documented on official django site. djangoproject_topics-serialization

1
adăugat

I've started a project that I think does exactly what you're looking for. You can find it at github_bumby_jslib.
It currently only supports get(), but I'm hoping to extend this soon. Feel free to contribute patches :)

jslib este o aplicație Django care are ca scop simplificarea integrării AJAX cu proiectele dvs. Django.

1
adăugat

Deci a trecut ceva timp de când am postat întrebarea inițială și de atunci au existat o serie de evoluții în Djangoland. Nu în ultimul rând, este o mică bibliotecă numită Django REST Framework. Eu o voi folosi pe un nou proiect si arata destul de bine.

http://www.django-rest-framework.org

0
adăugat

Se pare că doriți să JSON codificați datele obiectului dvs. . Consultați JSON.org pentru mai multe informații despre formatul de date.

0
adăugat
Codarea JSON furnizează doar datele obiectului. Nu oferă modelul de referință (sau numele său) și niciuna dintre funcționalități. :(
adăugat autor Dimitry, sursa
JavaScript, România - Moldova
JavaScript, România - Moldova
328 participanți

Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @node_ro, @php_ro, @python_ro, @seo_ro, @RomaniaGroup, @ai_ro, @Grupuri_IT Offtop: @holywars_ro Joburi: @js_jobs_ro Sponsored with ❤️ by ciupacabra.com