Django-extensible-profiele is 'n Django app wat bied 'n extensible gebruiker profiel stelsel vir Django, ontwerp om 'n eenvoudige gebruikers Profiel model wat extensible te voorsien.
Die konsep (en 'n paar kode) is ontleen uit die FeinCMS (https://github.com/matthiask/feincms) bladsy model.
Te gebruik om die profiele module voeg profiele aan jou INSTALLED_APPS.
Voordat jy met manage.py syncdb, moet jy 'n paar profiel uitbreidings voeg. Die profiele module niks aan die gebruiker model voeg by verstek.
Profiel uitbreiding modules
Uitbreidings is 'n manier wat dikwels gebruik funksies by te voeg die profiel model. Die uitbreidings is standaard Python modules met 'n register () metode wat genoem sal word op die registrasie van die uitbreiding. Die register () metode ontvang die Profiel klas self en die model admin klas ProfileAdmin as argumente.
Die uitbreidings kan geaktiveer word deur die byvoeging van die volgende tot 'n models.py lêer wat in elk geval verwerk sal word:
van profiles.models invoer Profiel
& Nbsp; & nbsp; & nbsp; Profile.register_extensions ('n titel ', 'n foto "," adres "," profiles.modules.options.extensions.options')
As die uitbreiding vereis dit se eie modelle (soos die opsies uitbreiding) dan is die app bevat die modelle sal ook moet bygevoeg word aan jou INSTALLED_APPS.
Die toevoeging van uitbreidings
By te voeg 'n uitbreiding skep 'n luislang module wat definieer 'n register funksie wat aanvaar die profiel klas en die ProfileAdmin klas as argumente en verander hulle soos benodig.
Hier is die adres uitbreiding (profiele / uitbreidings / address.py):
van django.db invoer modelle
& Nbsp; & nbsp; & nbsp; van django.utils.translation invoer ugettext_lazy as _
& Nbsp; & nbsp; & nbsp; def registreer (CLS, admin_cls):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ('Adres1', models.CharField (MAX_LENGTH = 255 verbose_name = _ ('adres'), nul = True, leeg = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ('Adres2', models.CharField (MAX_LENGTH = 255 verbose_name = _ ('posadres 2'), nul = True, leeg = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("stad", models.CharField (MAX_LENGTH = 255 verbose_name = _ ('n dorp / stad), nul = True, leeg = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ('streek, models.CharField (MAX_LENGTH = 255 verbose_name = _ (' land / staat / provinsie), nul = True, leeg = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ('poskode "models.CharField (MAX_LENGTH = 15 verbose_name = _ (' poskode '), nul = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ("land", models.ForeignKey ('countries.Country', null = True, leeg = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cls.add_to_class ('telefoon', models.CharField (MAX_LENGTH = 32, verbose_name = _ ('selfoonnommer'), nul = True, leeg = True))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; As admin_cls:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; admin_cls.search_fields + = ['Adres1', 'Adres2 "," stad "," streek "," poskode']
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; admin_cls.list_display_filter + = ['land',]
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; As admin_cls.fieldsets:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; admin_cls.fieldsets.append ((_ ('Address'), {
'Velde': ['Adres1', 'Adres2 "," stad "," streek "," poskode "," die land "," telefoon'],
"Klasse" ('n ineenstorting "),
}))
. Voeg 'incuna.countries' te INSTALLED_APPS vir die gebruik van adres uitbreiding
Vereistes :
- Python
- Django
Kommentaar nie gevind