Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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管理站点使用foreignkey将两个模型合并为一个模型_Python_Django_Django Admin - Fatal编程技术网

Python Django管理站点使用foreignkey将两个模型合并为一个模型

Python Django管理站点使用foreignkey将两个模型合并为一个模型,python,django,django-admin,Python,Django,Django Admin,我有这张桌子的学生档案 表StudentEnrollmentRecord,我只想在学生用户之前添加一列,如下图所示 这是我在model.py中的代码 class StudentProfile(models.Model): LRN = models.CharField(max_length=500,null=True) Firstname = models.CharField(max_length=500,null=True,blank=True) Middle_Initia

我有这张桌子的学生档案

表StudentEnrollmentRecord,我只想在学生用户之前添加一列,如下图所示

这是我在model.py中的代码

class StudentProfile(models.Model):
   LRN = models.CharField(max_length=500,null=True)
   Firstname = models.CharField(max_length=500,null=True,blank=True)
   Middle_Initial = models.CharField(max_length=500,null=True,blank=True)
   Lastname = models.CharField(max_length=500,null=True,blank=True)

class StudentsEnrollmentRecord(models.Model):
    Student_Users = models.ForeignKey(StudentProfile, related_name='+', on_delete=models.CASCADE,null=True)
    School_Year = models.ForeignKey(SchoolYear, related_name='+', on_delete=models.CASCADE, null=True, blank=True)
    Courses = models.ForeignKey(Course, related_name='+', on_delete=models.CASCADE, null=True, blank=True)
    Section = models.ForeignKey(Section, related_name='+', on_delete=models.CASCADE, null=True,blank=True)
    Payment_Type = models.ForeignKey(PaymentType, related_name='+', on_delete=models.CASCADE, null=True)
    Education_Levels = models.ForeignKey(EducationLevel, related_name='+', on_delete=models.CASCADE,blank=True,null=True)
这是我在admin.py中的代码

class StudentsEnrollmentRecordAdmin(admin.ModelAdmin):
    list_display = ('Student_Users', 'School_Year', 'Courses', 'Section', 'Payment_Type', 'Education_Levels')
    ordering = ('Education_Levels',)
    list_filter = ('Education_Levels','Section','Student_Users')

您需要在Admin类中定义一个单独的函数,以便从相关对象检索列:

class studentsRollmentRecordAdmin(admin.ModelAdmin):
...
def lrn(自身、obj):
返回obj.Student\u Users.lrn
然后在
列表\u显示中使用它

list_display=('lrn',…)
我还建议使用
list\u select\u related
,这样它就不会为每一行查询数据库

class studentsRollmentRecordAdmin(admin.ModelAdmin):
...
列表\选择\相关=(“学生\用户”)

您需要在Admin类中定义一个单独的函数,以便从相关对象检索列:

class studentsRollmentRecordAdmin(admin.ModelAdmin):
...
def lrn(自身、obj):
返回obj.Student\u Users.lrn
然后在
列表\u显示中使用它

list_display=('lrn',…)
我还建议使用
list\u select\u related
,这样它就不会为每一行查询数据库

class studentsRollmentRecordAdmin(admin.ModelAdmin):
...
列表\选择\相关=(“学生\用户”)

我遇到了这个错误“”“type object'StudentsEnrollmentRecord'没有属性'Student\u Users\u\u LRN'”“嗯,这很奇怪,它应该可以工作。我想知道这是否与您在模型字段中使用大写字母有关(这违反了标准做法)先生,你有办法解决这个问题吗?我还不确定-你用的是什么Django版本?你能从你的
StudentProfileAdmin
中显示
list\u display吗?list\u display=('lrn','Firstname','Middle\u Initial','Lastname','Request')我使用的Django版本是2.2.4i出现了这个错误“”类型对象'StudentsEnrollmentRecord'没有属性'Student\u Users\u\u LRN'“嗯,这很奇怪,它应该可以工作。我想知道这是否与您在模型字段中使用大写字母有关(这违反了标准做法)。您有什么办法解决这个问题吗,先生?我还不确定-您使用的是什么Django版本?你能从你的
StudentProfileAdmin
中显示
list\u display
吗?list\u display=('lrn','Firstname','Middle\u Initial','Lastname','Request')我使用的django版本是2.2.4