2017-03-26 2 views
0

J'ai du mal à afficher les messages '' sauvegardés ''/'' '' de mes utilisateurs dans django/admin. Je voudrais avoir un champ dans la page d'administration pour montrer quel utilisateur aime quels messages. J'ai fait un modèle UserProfile où toutes les informations supplémentaires (en plus de celle sur le profil d'utilisateur django administrateur donné) sont stockées. voici donc mon modèle Voir:montrant quel utilisateur a enregistré/enregistré avec python django.

class UserProfile(models.Model): 
user = models.OneToOneField(User, null=True) 
#likes = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True,default=1, related_name='likes') 
likedPosts=models.ManyToManyField('self') 
Field1 = models.CharField(max_length=50,default='Sunny') 
Field2 = models.CharField(max_length=50,default='') 

class Meta: 
    ordering =['-user'] 

#def __unicode__(self): 
# return self.user.username 


User.profile =property(lambda u: UserProfile.objects.get_or_create(user=u)[0]) 

en ce moment dans le domaine post-aimé, j'ai seulement quelques noms d'utilisateur ou « objet utilisateur » J'ai essayé toutes sortes de combinaisons pour obtenir les informations sur la page d'administration, mais comme vous pouvez vois je ne l'ai pas fait. J'ai essayé de changer le unicode et bien sûr la ligne de poste aimé. Si vous avez besoin de plus d'informations s'il vous plaît dites-le moi. J'apprécie chaque type d'aide.

Répondre

0

donc pour tous ceux qui veulent faire quelque chose de semblable cela a fonctionné pour moi:

class UserProfile(models.Model): 
    likedPosts = models.ManyToManyField('self',default=None,blank=True) 

def __unicode__(self): 
    return "{0}".format(self.user.likes.all()) 
0

L'administrateur django n'est pas vraiment destiné à prendre en charge de nombreuses relations dans les deux sens dans l'admin django. Toutefois, le lien ci-dessous contient une solution de contournement qui, selon moi, devrait résoudre votre problème avec une meilleure explication de la raison pour laquelle les relations plusieurs-à-plusieurs ne sont affichées que d'un côté par défaut.

(many-to-many in list display django).