将数据从一张表提交到另一张表

时间:2021-01-20 14:11:12

标签: python django django-models django-forms

我正在尝试使用表单提交清单中的数据。检查表是从一个数据库表中生成的,提交后检查的项目被插入到另一个数据库表中。我收到错误,因为表单无效。

这是我的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'}))

此错误是由于清单字符串的值以双引号返回而产生的。前任。来自第一个数据库的“学生”。

我曾尝试拆分字符串以删除双引号,但即便如此也无济于事。

1 个答案:

答案 0 :(得分:1)

字段 as.list(1:4) 需要一个选择模型。

如果要分配字符串,可以改用 forms.MultipleChoiceField

forms.ModelMultipleChoiceField

查看属性 choices 的详细说明。