django - 内联表单集:Django 'main.Course' 没有 ForeignKey 到 'main.Teacher'
问题描述
我有这个错误,无法真正识别错误。在动态 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)
解决方案
更改models.py的 Course 类的教师字段,
从,
teacher = models.ManyToManyField(Teacher)
至,
models.ForeignKey(Teacher, on_delete=models.CASCADE)
推荐阅读
- r - 将 R 中 DT 表中的值向左移动
- python - 如何识别熊猫索引和标题中的日期?
- python - ValueError: 时间数据 1.2.20 与格式 %m/%d/%y 不匹配
- django - Django 创建视图表单验证警告
- graphql - 在查询中添加不在类型中的数据
- image - 突出显示具有不同颜色图像的区域及其周围的区域
- python - 相对导入无缘无故不起作用
- linux-kernel - 无法使用 buildroot 编译模块
- java - Getting JsonMappingException when trying to deserialize Json
- c++ - 如何在不更改其余代码的情况下将 C++ 模板替换为 C 兼容?