-Django extensibil profiluri este o aplicatie Django, care oferă un sistem de profil de utilizator extensibil pentru Django, concepute pentru a oferi un model de utilizator profil simplu, care este extensibil.
Conceptul (și unele cod) este împrumutat de la modelul pagina FeinCMS (https://github.com/matthiask/feincms).
Pentru a utiliza modulul profile adăuga profile pentru INSTALLED_APPS dumneavoastră.
Înainte de a începe cu syncdb manage.py, trebuie să adăugați unele extensii de profil. Modulul profiluri nu adaugă nimic la modelul de utilizator implicit.
Module extensie Profil
Extensiile sunt o modalitate de a adăuga funcționalitate folosit de multe ori, modelul profilului. Extensiile sunt module Python standard, cu un registru () metoda care va fi chemată înregistrarea extensia. Registru () Metoda primește în sine clasa Profile și clasa de modelul de admin ProfileAdmin ca argumente.
Extensiile pot fi activate prin adăugarea următoarelor într-un fișier models.py care vor fi procesate oricum:
de la profiles.models Profil import
& Nbsp; & nbsp; & nbsp; Profile.register_extensions ("titlul", "imagine", "adresa", "profiles.modules.options.extensions.options")
Dacă extensia necesită E modele proprii (cum ar fi extinderea opțiunilor) atunci aplicația conține modele vor trebui, de asemenea, să fie adăugate la INSTALLED_APPS dumneavoastră.
Adăugarea extensii
Pentru a adăuga o extensie a crea un modul piton care definește o funcție registru care acceptă clasa Profile și clasa ProfileAdmin ca argumente și le modifică după cum este necesar.
Aici este extensia adresa (profiluri / extensii / address.py):
din modelele django.db de import
& Nbsp; & nbsp; & nbsp; de la django.utils.translation ugettext_lazy import ca _
& Nbsp; & nbsp; & nbsp; def registru (cls, admin_cls):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("Adresa1", models.CharField (MAX_LENGTH = 255, verbose_name = _ ("adresa"), null = Adevărat, gol = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("Adresa2", models.CharField (MAX_LENGTH = 255, verbose_name = _ ('adresă 2'), null = Adevărat, gol = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("oraș", models.CharField (MAX_LENGTH = 255, verbose_name = _ ("oraș / oraș"), null = Adevărat, gol = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("regiune", models.CharField (MAX_LENGTH = 255, verbose_name = _ ('județ / stat / provincie "), null = Adevărat, gol = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("codul postal, models.CharField (MAX_LENGTH = 15, verbose_name = _ (" codul postal), null = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("țară", models.ForeignKey ("countries.Country ', null = Adevărat, gol = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("telefon", models.CharField (MAX_LENGTH = 32, verbose_name = _ ('numarul de telefon mobil "), null = Adevărat, gol = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; în cazul în care admin_cls:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; admin_cls.search_fields + = ['Adresa1 "," Adresa2 "," city "," regiune "," codul postal]
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; admin_cls.list_display_filter + = ["țară",]
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; în cazul în care admin_cls.fieldsets:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; admin_cls.fieldsets.append ((_ ("Adresa"), {
"Domenii": ["Adresa1", "Adresa2", "city", "regiune", "codul postal", "țară", "telefon"],
"clase": ("colaps",),
}))
. Adauga 'incuna.countries de a INSTALLED_APPS pentru utilizarea extensie adresă
Cerințe :
- Python
- Django
Comentariile nu a fost găsit