2017-04-12 1 views
0

Dans mon application, j'ai un modèle 'Group_Set' personnalisé, conçu pour regrouper les utilisateurs. Cependant, je n'arrive pas à récupérer les utilisateurs dans les groupes.Impossible de récupérer des informations sur django de plusieurs, 'objet n'a pas d'attribut'

from django.db import models 
from django.contrib.auth.models import User 



class Profile(models.Model): 
    user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True) 
    display_name = models.CharField(max_length=30, blank=True) 
    slug = models.CharField(max_length=30, blank=True) 
    bio = models.TextField(max_length=500, blank=True) 
    avatar = models.ImageField(upload_to = 'avatars/', default = 'avatars/default.jpg') 
    location = models.CharField(max_length=30, blank=True) 
    birth_date = models.DateField(null=True, blank=True) 
    public = models.BooleanField(default = False) 

    def __str__(self): 
     return self.slug 

class Group_Sets(models.Model): 
    name = models.CharField(max_length=30) 
    slug = models.CharField(max_length=30, blank=True) 
    bio = models.TextField(max_length=500, blank=True) 
    users = models.ManyToManyField(User, related_name='users') 
    public = models.BooleanField(default = False) 

    def __str__(self): 
     return self.slug 

Une fois que nous recevons, tous les autres attributs objet Group_Set, groupe = get_object_or_404() fonctionnent. Toutefois, group.users renvoie 'auth.User.none' même si je peux voir la fonction de relation dans la base de données et dans l'admin.

Quelqu'un peut-il voir quelque chose de mal avec la façon dont j'ai configuré cela?

+0

Le code que vous utilisez et le résultat obtenu ne sont pas clairs. Avez-vous essayé 'group.users.all()'? Voir les documents sur [plusieurs à plusieurs relations] (https://docs.djangoproject.com/fr/1.10/topics/db/queries/#many-to-many-relationships) pour plus d'informations. – Alasdair

Répondre

0

C'était une erreur stupide de ma part, vous devez utiliser 'group.users.all()', donc theres que. Rappelez-vous votre related_name et la méthode all.