无法分配“<QuerySet[]>”:“必须是”“实例。”

2024-06-02 05:14:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从Forms.py保存此字段,这似乎是导致此错误的原因:无法分配“<;QuerySet[Vehicles:Toyota]>;”:“Group.Vehicles”必须是“Vehicle”实例

所有内容都可以通过管理页面正确保存,但不能通过表单正确保存

class GroupForm(forms.ModelForm):
    vehicles = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple(), queryset=Vehicles.objects.all())

class Meta:
    model = Group

Models.py:

class Vehicles(models.Model):
Vehicles = models.CharField(max_length=30, null=True, blank=True)
MaxRange = models.DecimalField(null=True, max_digits=20, decimal_places=3, default=Decimal('0.000'))
Speed = models.DecimalField(null=True, max_digits=20, decimal_places=3, default=Decimal('0.000'))

def __str__(self):
    return self.Vehicles

class Group(models.Model):
group = models.CharField(max_length=30, blank=True)
vehicles = models.ForeignKey(Vehicles, null=True, on_delete=models.CASCADE)

def __str__(self):
    return self.group

“组”由一种类型的车辆组成

views.py:

def home(request):
group = Group.objects.all()
form = GroupForm()
if request.method == 'POST':
    form = GroupForm(request.POST)
    if form.is_valid():
        obj = form.save(commit=False)
        obj.vehicles = form.cleaned_data['vehicles']
        obj.save()
    return redirect('/')

context = {'group': group, 'form': form}
return render(request, 'calculator/Input.html', context)

谢谢你的意见


Tags: pyselfformtruereturnmodelsrequestgroup
1条回答
网友
1楼 · 发布于 2024-06-02 05:14:17

没关系,不需要复选框小部件。我删除了行:“vehicles=forms.ModelMultipleChiceField(widget=forms.CheckboxSelectMultiple(),queryset=vehicles.objects.all())”并将“vehicle”作为字段保留在forms.py的Meta类下:它保存/用户现在只能选择一个选项

相关问题 更多 >