Django ModelForm cu ManyToManyВ Fields Joshua Kehn
ORM-ul încorporat al Django are un câmp ManyToMany pe care îl puteți selecta. Cred că multi-selectorul implicit este o problemă, iar acest lucru a fost confirmat de mulți utilizatori finali care descriu modul în care selectorul îi face să greșească în timp ce editează acele câmpuri particulare. Aici voi descrie două lucruri. În primul rând, cum să schimbați widgetul câmpului respectiv cu ceva mai plăcut. În continuare voi descrie câteva blocaje la care ar trebui să aveți grijă să aveți grijă atunci când utilizați acest câmp cu ModelForms, mai ales în timpul salvării.

Cele mai multe relații sunt cel mai bine evitate dacă este posibil. Sunt dezordonate și forțează tot codul să gestioneze mai multe instanțe ale unei relații. O listă de ingrediente dintr-o masă ar putea fi reprezentată printr-o relație de mai multe persoane, cu excepția cazului în care doriți să reutilizați aceste ingrediente. Atunci ai două opțiuni; fie permite copierea, fie folosește un câmp de la mai mulți la mulți. Deoarece aceste ingrediente ar putea fi schimbate și acest lucru trebuie să se propage la toate mesele din care fac parte, am optat pentru ultima soluție.
Modele și codul formularului
Iată codul modelului de bază pentru mese, disponibil și ca model.py esențial.
Toate acestea sunt lucruri de modelare de bază. Ingredientele au un nume și relații cu dietele și preferințele alimentare. O masă poate avea multe ingrediente, un nume și un set de categorii de meniu. 1
Acum, să aruncăm o privire la formularul de adăugare/modificare a ingredientelor. Acesta este un ModelForm cu mai multe utilizări, disponibil și sub forma forms.py.