2010-03-12 3 views
3

j'ai les modèles suivants permettent la configurationComment afficher les champs d'une clé étrangère dans la liste des objets de l'administrateur Django?

class Player(models.Model): 
    #slug = models.slugField(max_length=200) 
    Player_Name = models.CharField(max_length=100) 
    Nick = models.CharField(max_length=100, blank=True) 
    Jersy_Number = models.IntegerField() 
    Team_id = models.ForeignKey('Team')  
    Postion_Choices = (
     ('M', 'Manager'), 
     ('P', 'Player'), 
) 
    Poistion = models.CharField(max_length=1, blank=True, choices =Postion_Choices) 
    Red_card = models.IntegerField(blank=True, null=True) 
    Yellow_card = models.IntegerField(blank=True, null=True) 
    Points = models.IntegerField(blank=True, null=True) 
    #Pic = models.ImageField(upload_to=path/for/upload, height_field=height,  width_field=width, max_length=100) 
class PlayerAdmin(admin.ModelAdmin): 
    list_display = ('Player_Name',) 
    search_fields = ['Player_Name',] 

admin.site.register(Player, PlayerAdmin) 


class Team(models.Model): 
"""Model docstring""" 
#slug = models.slugField(max_length=200) 
Team_Name = models.CharField(max_length=100,) 
College = models.CharField(max_length=100,) 
Win = models.IntegerField(blank=True, null=True) 
Loss = models.IntegerField(blank=True, null=True) 
Draw = models.IntegerField(blank=True, null=True) 
#logo = models.ImageField(upload_to=path/for/upload, height_field=height, width_field=width, max_length=100)  
class Meta: 
    pass 

#def __unicode__(self): 
    # return Team_Name 

#def save(self, force_insert=False, force_update=False): 
    # pass 

@models.permalink 
def get_absolute_url(self): 
    return ('view_or_url_name') 


class TeamAdmin(admin.ModelAdmin): 
    list_display = ('Team_Name',) 

    search_fields = ['Team_Name',] 

admin.site.register(Team, TeamAdmin) 

ma question est de savoir comment puis-je obtenir sur le site admin pour montrer Team_name sous la forme lecteur add champ Team_ID actuellement, il ne se montre comme Team object dans la zone de liste déroulante

Répondre

5

vous êtes presque là, vous avez commenté le et oublié d'appeler l'attribut correctement:

def __unicode__(self): 
    return self.Team_Name 

Lire la documentation.

1

Ajouter une méthode unicode à l'objet de l'équipe:

def __unicode__(self): 
    return self.Team_name 
4

Et pour les développeurs mis à jour (3.x Python):

def __str__(self): 
    return self.Team_name 
Questions connexes