内联表单集:Django'main.Course'没有对'main.Teacher'的ForeignKey

问题描述 投票:0回答:1

我有此错误,无法真正识别出该错误。在动态url路由中,我先确定了URL,然后预定义了应用名称(主要),然后是url。

<a class="btn btn-info" href="{% url 'main:teacher' teacher.fname %}">View</a>

这是否与嵌入式表单集的错误有关?型号:

class Teacher(models.Model):
    teacher_id = models.AutoField(primary_key=True,blank=True)
    fname = models.CharField(max_length=200)
    lname = models.CharField(max_length=200)
    tsc_no = models.CharField(max_length=200,blank=True,unique=True)
    email = models.CharField(max_length=200,blank=True,unique=True)
    password = models.CharField(max_length=200,blank=True)
    profile_picture = models.ImageField(verbose_name='profile_picture',upload_to='photos/%Y/%m/%d',blank=True)
    national_id = models.CharField(max_length=200,unique=True)
    dob  = models.DateField(blank=True)
    phone_number = PhoneNumberField()
    status = models.CharField(max_length=200)
    clas_teacher = models.CharField(max_length=200,blank=True)
    date_of_join = models.DateField(blank=True)
    timetable_color = models.CharField(max_length=200)

class Course(models.Model):
    course_id = models.AutoField(primary_key=True)
    course_name = models.CharField(max_length=200)
    description = models.CharField(max_length=200)
    teacher = models.ManyToManyField(Teacher)

    class Meta:
        ordering = ['course_name']

    def __str__(self):
        return self.course_name

视图:

def addmoreteacher(request,pk_test):


    teacher = Teacher.objects.get(fname=pk_test)
    CourseFormSet = inlineformset_factory(Teacher,Course,fields = ('course_name','description'))
    formset =  CourseFormSet(instance=teacher)

    #form = CourseForm(initial = {'teachers_teaching':teacher})

    if request.method == 'POST':
        #form = TeacherForm(request.POST)
        #print(form)
        formset =  CourseFormSet(request.POST,instance=teacher)
        if formset.is_valid():
            formset.save()
            print("saved")
            return redirect('/')
        else:
            print(formset.errors)

    context = {'formset': formset}
    return render(request = request,template_name='main/addmoreteacher_form.html',context=context)
django forms view set inline
1个回答
0
投票

更改models.py课程班的教师字段,

发件人,

teacher = models.ManyToManyField(Teacher)

收件人,

models.ForeignKey(Teacher, on_delete=models.CASCADE)

© www.soinside.com 2019 - 2024. All rights reserved.