Domanda

Sto usando (e apprendo) Django sul mio nuovo prodotto e ho appena installato e ho iniziato a utilizzare Django-Registration app per consentire ai miei utenti di registrarsi automaticamente.

Tutto funziona bene, ma sto pensando di assegnare ogni nuovo utente a un gruppo specifico (già creato), quindi posso "separare" gli amministratori dagli utenti normali.

Come posso fare questo? La documentazione su questa app è terribile, IMO.

Non ho creato alcun modello o configurazione per iniziare a utilizzare l'app Django-Registration.

È stato utile?

Soluzione

Per iniziare, non sono un esperto di DR (Django-Registration) e in realtà l'ho verificato solo perché l'hai menzionato nella tua domanda. Quindi, se qualcun altro ha una risposta migliore, invialo. Comunque, eccolo qui.

Ho notato che il modo in cui gli utenti (o "profili" come li chiama DR) è stato trovato nella funzione Create_inactive_user situata in Registration.models.regastitionManager. Quindi, in questa funzione dopo:

new_user.is_active = False
new_user.save()

Potresti aggiungere qualcosa di simile:

default_group = Group.objects.get(name=WHATEVER_THE_GROUP_NAME_IS)
user_group, is_created = UserGroup.get_or_create(user=new_user)
user_group.group = default_group
#user_group.groups.add(default_group)   # Django ver. 1.7+
user_group.save()

Probabilmente potresti fare a meno che Get_or_Create perché non credo di poter creare più di un utente con lo stesso nome utente, ma preferirei essere al sicuro che scusa.

Questo metodo ti farà modificare i file DR (che potrebbero non essere la cosa migliore da fare) insieme a determinate cose (come il nome del gruppo predefinito), ma dovrebbe essere un buon punto di discesa.

Ps. Il nome del gruppo predefinito potrebbe essere una variabile situata nel file di impostazione.py, che lo renderebbe più accessibile e carino. Esempio:

settings.py:
DEFAULT_GROUP_NAME = 'YOUR GROUP NAME'

registration/models.py:
default_group = Group.objects.get(name=settings.DEFAULT_GROUP_NAME)

Comunque, spero che aiuti.

Altri suggerimenti

Ho finito per fare una forchetta per questo, poiché questo mi faceva impazzire.

https://github.com/kcunning/django- registrazione

Fondamentalmente, aggiungi quanto segue al file di impostazioni.py:

Registration_Default_Group_name = "GroupName"

Qualsiasi utente aggiunto tramite il modulo di registrazione verrà dato a quel gruppo alla creazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top