"":" StudentsSubmittedDocument.Students_Enrollment_Records "должен быть экземпляром" StudentsEnrollmentRecord " - PullRequest
0 голосов
/ 17 октября 2019

views.py

    id = request.POST.get('ids')
    studentname = StudentProfile(id=id)

    myfile = request.FILES['myfile']
    fs = FileSystemStorage()
    filename = fs.save(myfile.name, myfile)
    uploaded_file_url = fs.url(filename)
    student = StudentsEnrollmentRecord.Student_Users

    V_insert_data = StudentsEnrollmentRecord(
            Student_Users=studentname, Payment_Type=payment,
            Education_Levels=educationlevel,School_Year=schoolyear
        )
        V_insert_data.save()
        insert_doc = StudentsSubmittedDocument(
            Students_Enrollment_Records = studentname,
            Document = myfile
        )
        insert_doc.save()

    return render(request, 'Homepage/pending.html')

models.py

class StudentProfile(models.Model):
    DoesNotExist = None
    objects = None
    Pending_Request = [
        ('Pending_Request', 'Pending_Request'),
        ('Enrolled', 'Enrolled'),
    ]
    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.IntegerField(null=True,blank=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)

class StudentsSubmittedDocument(models.Model):
    Students_Enrollment_Records = models.ForeignKey(StudentsEnrollmentRecord, related_name='+', on_delete=models.CASCADE,blank=True,null=True)
    Document_Requirements = models.IntegerField(null=True,blank=True)
    Document = models.FileField(upload_to='files',null=True,blank=True)

Как исправить эту ошибку? я столько раз пытался это исправить, но не могу, я не знаю, как исправить эту ошибку, я просто хочу сохранить StudentsEnrollmentRecord(Student_Users) в StudentsSubmittedDocument(Students_Enrollment_Records), кстати, это моя ошибка:

ValueError at /newEnroll/ Cannot assign "": "StudentsSubmittedDocument.Students_Enrollment_Records" must be a "StudentsEnrollmentRecord" instance.

1 Ответ

1 голос
/ 17 октября 2019

В вашей переменной insert_doc измените ваш Students_Enrollment_Records аргумент с studentname на V_insert_data, так что это будет выглядеть так:

insert_doc = StudentsSubmittedDocument(
    Students_Enrollment_Records = V_insert_data,
    Document = myfile
)

Ошибка ясно говорит о том, что вы неприсвоение правильного экземпляра полю Students_Enrollment_Records в вашей модели StudentsSubmittedDocument.

PD: Я бы предложил вам изменить имена полей ForeignKey и сделать их единственными ,поскольку он указывает только на одну запись, а множественные имена могут привести к путанице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...