我正在尝试使用表单提交清单中的数据。检查表是从一个数据库表中生成的,提交后检查的项目被插入到另一个数据库表中。我收到错误,因为表单无效。
这是我的models.py CustomStudent 是我从中获取价值的数据库,Reports 是我提交价值的数据库
class CustomStudent(models.Model):
_id = models.AutoField
sname = models.CharField(max_length = 50)
slname = models.CharField(max_length = 50)
password = models.CharField(max_length = 255, default = '')
def __str__(self):
return str(self.slname)
return str(self.sname)
class Report(models.Model):
# _id = models.AutoField()
tname = models.CharField(max_length = 100)
sname = models.CharField(max_length = 100)
fdate = models.DateField()
tdate = models.DateField()
dailydate = models.DateField()
objective = models.CharField(max_length = 512)
tplan = models.CharField(max_length = 512)
how = models.CharField(max_length = 512)
material = models.CharField(max_length = 512)
extra = models.CharField(max_length = 512)
topic = models.CharField(max_length = 512)
pftd = models.CharField(max_length = 512)
activity = models.CharField(max_length = 512)
comment = models.CharField(max_length = 512)
thought = models.CharField(max_length = 512)
admin_comment = models.CharField(max_length = 255)
def __str__(self):
return str(self.tname)
return str(self.sname)
这是我的 forms.py 中用于使用数据库的代码。
sname = forms.ModelMultipleChoiceField(queryset=CustomStudent.objects.all().values_list('sname', flat=True), required = False, widget =forms.CheckboxSelectMultiple( attrs ={'class':' form-check-input' ' form-check-inline'}))
此错误是由于清单字符串的值以双引号返回而产生的。前任。来自第一个数据库的“学生”。
我曾尝试拆分字符串以删除双引号,但即便如此也无济于事。
答案 0 :(得分:1)
字段 as.list(1:4)
需要一个选择模型。
如果要分配字符串,可以改用 forms.MultipleChoiceField
。
forms.ModelMultipleChoiceField
查看属性 choices
的详细说明。