在表单中显示外键的不同名称

时间:2013-10-16 16:54:27

标签: python django python-3.3 django-1.5

我有这张表格:

class Trida(models.Model):
    název=models.CharField(max_length=20)
    tridni_ucitel=models.ForeignKey(Ucitel, blank=True, null=True)
    predmety=models.ForeignKey(Predmety, blank=True, null=True)

当我将其作为HTML表单时,ForeignKey名称只是对象的名称(此处为“Ucitel” )和“对象”。我想将其更改为显示不同的名称(名字和姓氏)。怎么样?

3 个答案:

答案 0 :(得分:1)

在模型类中定义它,如下所示:

def __unicode__(self):
    return self.first_name + self.last_name

答案 1 :(得分:0)

答案 2 :(得分:0)

在目标模型上定义默认字符串表示形式:

class Trida(models.Model):
    název=models.CharField(max_length=20)
    tridni_ucitel=models.ForeignKey(Ucitel, blank=True, null=True)
    predmety=models.ForeignKey(Predmety, blank=True, null=True)

class Ucitel(models.Model):
    firstname=models.CharField(max_length=20)
    lastname=models.CharField(max_length=20)
    ...

    def __unicode__(self):
        return u'%s %s' % (self.firstname, self.lastname)

如果您使用的是Python 3,请使用__str__()代替__unicode__()

这在Django教程的第一页中有所介绍:https://docs.djangoproject.com/en/dev/intro/tutorial01/