【发布时间】:2020-05-13 10:38:03
【问题描述】:
我有这个错误,无法真正识别错误。在动态 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)
【问题讨论】:
-
尝试将此
teacher = models.ManyToManyField(Teacher)更改为teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE)。注意:现在两个或更多的老师不能一起拥有课程。如果您不希望对 ForeignKey 进行此更改。 -
我已经添加了一个答案,请考虑接受它作为解决方案。
标签: django forms view set inline