我正在尝试从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)
谢谢你的意见
没关系,不需要复选框小部件。我删除了行:“vehicles=forms.ModelMultipleChiceField(widget=forms.CheckboxSelectMultiple(),queryset=vehicles.objects.all())”并将“vehicle”作为字段保留在forms.py的Meta类下:它保存/用户现在只能选择一个选项
相关问题 更多 >
编程相关推荐