Django - Utilisateur, l'Utilisateur et Admin
Je vais essayer d'obtenir le Django de l'interface Admin pour afficher des informations sur mon profil. Il affiche tous mes utilisateurs, mais pas les informations de profil. Je ne suis pas tout à fait sûr de savoir comment le faire fonctionner.
J'ai trouvé ce code après une rapide recherche sur google:
from auth.models import UserProfile
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
admin.site.unregister(User)
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserProfileAdmin(UserAdmin):
inlines = [UserProfileInline]
admin.site.register(User, UserProfileAdmin)
Cependant, je ne pense pas que cela a fonctionné. Lorsque je me connecte en admin de la page, je vois des Utilisateurs, des Groupes et des Sites. J'cliquez sur Utilisateurs et je vois une liste de tous mes Utilisateurs, mais aucune indication de tout profil. En cliquant sur un utilisateur me montre des infos sur l'utilisateur, mais toujours aucune informations sur leur profil.
Si cela peut aider, voici mon modèle de déclaration:
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
company = models.CharField(max_length=30)
user = models.ForeignKey(User, unique=True)
Et mon code d'enregistrement:
def register(request):
if request.method == 'POST':
uf = UserForm(request.POST)
upf = UserProfileForm(request.POST)
if uf.is_valid() and upf.is_valid():
user = uf.save()
userprofile = upf.save(commit=False)#need to get the user profile object first
userprofile.user = user #then set the user to user
userprofile.save() #then save to the database
return HttpResponseRedirect('/auth/login/')
else:
uf = UserForm()
upf = UserProfileForm()
return render_to_response('register.html', dict(userform=uf,userprofileform=upf),context_instance=RequestContext(request))
admin.py
et de l'ajouter à INSTALLED_APPS
?Le code pour l'admin est en admin.py à l'intérieur de mon "auth" de l'application. auth est dans INSTALLED_APPS. J'ai aussi mis mon Auth Module Profil correctement.
auth ressemble à un mauvais nom, car vous pouvez avoir un conflit.
Peut-être que je vais le changer mais pour l'instant, l'ensemble de l'authentification des œuvres de trucs, tout simplement pas le profil admin
OriginalL'auteur JPC | 2010-12-30
Vous devez vous connecter pour publier un commentaire.
Je ne vois pas exactement quel est le problème, mais ici, c'est un peu plus simple exemple que je connais œuvres. Mettre c'est tout de travail admin.py. Essayez d'ajouter une virgule à votre en ligne, certaines choses sans pause.
Ce n'est pas grave, je le sais. Êtes-vous sûr que votre admin.py est de faire rire?
Je pense que cela a fonctionné. Je peux voir le profil de maintenant, lorsque je clique sur un utilisateur! Wow merci. Une virgule
Une idée de comment ajouter de l'Utilisateur des informations à la table des Utilisateurs, de sorte que je peux trier par il/recherche-t-il?
Comme le tri dans l'admin app? Il peut être possible, mais vous auriez probablement faire quelque chose déconseillé comme sous-classe le modèle de l'Utilisateur. Vous êtes probablement mieux d'essayer de monkey patch dans le modèle.
OriginalL'auteur C. Alan Zoppa
Ce n'est pas exactement une réponse à votre question, MAIS, selon Django Admin de la documentation, vous pouvez afficher des informations de l'Utilisateur dans votre "tableau". Et vous pouvez faire des recherches.
Qui ressemblerait à quelque chose comme ceci (modifier la réponse de C. Alan Zoppa):
Vous pourriez avoir un problème avec cependant de recherche si votre profil de classe n'est plus appelé
UserProfile
.OriginalL'auteur Antoine Pelisse
Le manque virgule ne compte pas. Je soupçonne que le problème, c'est que vous avez ajouté un nouveau
admin.py
mais le serveur de développement de ne pas le reconnaître. Si vous redémarrez le serveur de développement, il va voir le nouveau fichier.OriginalL'auteur Joe Mornin