Django:如何从其他模型获取ID

时间:2019-11-21 07:06:41

标签: django

我希望我的标题足以回答我的问题,当我从模型(studentDiscount)单击报告时,我只想获取模型的ID(StudentProfile),我的错误是来自admin.py中的这一行 obj.Students_Enrollment_Records__Student_Users.pk 我不知道这是否正确。 enter image description here

@admin.register(studentDiscount)
class studentDiscount(admin.ModelAdmin):
    list_display = ('Students_Enrollment_Records', 'Discount_Type','my_url_field')
    ordering = ('Students_Enrollment_Records',)
    search_fields = ('Students_Enrollment_Records',)

    def my_url_field(self, obj):
        return format_html("<a href='https://www.ucc.ph/enrollmentform/?StudentID={}'>Report", obj.Students_Enrollment_Records__Student_Users.pk)
    my_url_field.allow_tags = False
    my_url_field.short_description = 'Report'

models.py

class StudentProfile(models.Model):
   Image = models.ImageField(upload_to='images',null=True,blank=True)
   Username = models.CharField(max_length=500,null=True,blank=True)
   Password = models.CharField(max_length=500,null=True,blank=True)
   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='students', 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)

class studentDiscount(models.Model):
    Students_Enrollment_Records = models.ForeignKey(StudentsEnrollmentRecord, related_name='+',
                                                    on_delete=models.CASCADE, null=True)
    Discount_Type = models.ForeignKey(Discount, related_name='+', on_delete=models.CASCADE, null=True,blank=True)

1 个答案:

答案 0 :(得分:0)

首先,您确实应该检查PEP8

要获取id,请使用:obj.Students_Enrollment_Records.Student_Users.id