2010-02-01 8 views
0

J'utilise django 1.0 et une méthode views.py qui commence comme ceci:django: request.user est un entier, pas un objet utilisateur

def my_view(request, org_id): 
    a = request.user.is_staff() #this line has error 
    #more code... 

Lorsque je tente de charger la page , Je reçois l'erreur "'int' objet n'est pas appelable" sur la ligne marquée ci-dessus. Mon fichier models.py contient un objet "User" qui est importé en haut de views.py, mais supprimer cette instruction d'importation de views.py ne semble pas empêcher cette erreur. Est-il possible que cette autre classe Utilisateur provoque un conflit dans un autre de mes fichiers, peut-être? Avez-vous d'autres idées concernant ce qui pourrait causer cette erreur?

Répondre

4

Je suppose que le problème est is_staff(). Essayez

a = request.user.is_staff 

is_staff est un champ du modèle. Mais c'est un booléen. Néanmoins, il se peut qu'il soit stocké sous la forme int en interne.

User model documentation

+0

+1 - et, au cas où quelqu'un se demande pourquoi un champ appelé 'is_staff' serait un entier, il est en fait défini comme une backends base de données booléennes, mais certains reviennent ints pour les champs booléens. Cela ne fait aucune différence en Python. –

+0

@Daniel Roseman: Oui, c'est exactement ce que je pensais. –

+0

Merci, Félix! Je ne peux pas croire que j'ai raté ça! –

Questions connexes