Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django中的下拉列表显示外键字段的对象_Python_Django - Fatal编程技术网

Python django中的下拉列表显示外键字段的对象

Python django中的下拉列表显示外键字段的对象,python,django,Python,Django,我使用模型在Django中自动生成表单。这是我的密码 class Dependent(models.Model): primarystudentid = models.ForeignKey('Students', models.DO_NOTHING, db_column='PrimaryStudentID') # Field name made lowercase. dependentname = models.CharField(db_column='DependentNam

我使用模型在Django中自动生成表单。这是我的密码

class Dependent(models.Model):
    primarystudentid = models.ForeignKey('Students', models.DO_NOTHING, db_column='PrimaryStudentID')  # Field name made lowercase.
    dependentname = models.CharField(db_column='DependentName', max_length=100)  # Field name made lowercase.
    relation = models.CharField(db_column='Relation', max_length=50)  # Field name made lowercase.
    def __str__(self):
        return "{0}".format(self.primarystudentid)
primarystudentid是学生表中自动生成的字段。我尝试了unicode和str,但我仍然得到了作为学生对象的下拉列表中primarystudentid的值。我从stack overflow和其他站点尝试了很多方法,但似乎都不起作用。 Python版本Python 2.7.13 Django版本1.9.13
感谢您的帮助

您需要引用另一个表中的字段

dep = Dependent.objects.first()
dep.primarystudentid.name # This would be the name
在你的例子中

def __str__(self):
    return "{0}".format(self.primarystudentid.name)

值得注意的是,这很容易导致生成大量额外的查询。

您需要引用另一个表中的字段

dep = Dependent.objects.first()
dep.primarystudentid.name # This would be the name
在你的例子中

def __str__(self):
    return "{0}".format(self.primarystudentid.name)

值得注意的是,这很容易导致生成大量额外的查询。

您需要更新学生表(而非依赖表)的strunicode方法,并返回名称或您希望在下拉列表中显示的任何字段

例如:

class Student(models.Model):
    name = models.CharField(max_length=50)

def __str__(self):
    return u'{0}'.format(self.name)

注意:请将字段dependentname的名称更新为name,因为很明显,如果这是在Dependent模型中,那么它就是Dependent的名称

您需要更新Student表(而不是依赖表)的strunicode方法,并返回名称或您希望在下拉列表中显示的任何字段

例如:

class Student(models.Model):
    name = models.CharField(max_length=50)

def __str__(self):
    return u'{0}'.format(self.name)
注意:请将字段dependentname的名称更新为name,因为很明显,如果这是在Dependent模型中,那么它就是Dependent的名称

同时在学生表中定义str(self):方法,并在学生表中使用self.column\u name返回列值,然后在下拉列表中显示该值。同时在学生表中定义str(self):方法,并在学生表中使用self.column\u name返回列值,然后它将在下拉列表中显示该值