Как отобразить поля внешнего ключа в списке объектов администратора Django? - PullRequest
4 голосов
/ 13 марта 2010

У меня есть следующие настройки моделей

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)

мой вопрос: как мне попасть на сайт администратора, чтобы показать Team_name в поле добавления игрока Team_ID поле в настоящее время отображается только как Team object в поле со списком

Ответы [ 3 ]

7 голосов
/ 13 марта 2010

Вы почти на месте, вы закомментировали его и забыли правильно назвать атрибут:

def __unicode__(self):
    return self.Team_Name

Прочитайте документацию .

5 голосов
/ 01 февраля 2016

А для обновленных разработчиков (Python 3.x):

def __str__(self):
    return self.Team_name
1 голос
/ 13 марта 2010

Добавить метод Юникод к объекту команды:

def __unicode__(self):
    return self.Team_name
...