0
我已经尝试过使用的ModelForm保存外键保存外键,但我得到这个错误:正确的方式使用的ModelForm
The LabRequestForm could not be created because the data didn't validate.
这里是我的代码:
model.py
class LabRequestForm(models.Model):
# lab request form
product_name = models.ForeignKey(ProductName, on_delete=models.CASCADE)
ref_no = models.CharField(max_length=200, unique=True)
date = models.DateTimeField()
batch_number = models.CharField(max_length=200, unique=True)
sampling_time = models.DateTimeField()
lab_test_number = models.CharField(null=True, max_length=200)
forms.py
class LabRequestModelForm(ModelForm):
class Meta:
model = LabRequestForm
fields = '__all__'
views.py
@login_required
def sampler(request):
detect_user = Account.objects.get(id=request.user.id)
if detect_user.is_sampler:
if request.method == "POST":
prod_name = ProductName.objects.get(product_name=request.POST.get('product_name'))
lab_req_form = LabRequestModelForm(request.POST)
lab_req_form_obj = lab_req_form.save(commit=False)
lab_req_form_obj.product_name = prod_name
if lab_req_form_obj.is_valid():
lab_req_form_obj.save()
messages.info(request, 'Form Saved')
else:
print('not valid')
messages.error(request, "Form is not valid")
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
手动我检查每个POST数据,他们是正确的。所以我怀疑lab_req_form.save(commit=False)
是主要的罪魁祸首。
应用您的建议,我得到一个无效的表单。它表示我的表单无效 – pyprism
@pyprism这意味着您的表单未验证。这是另一个问题,与您的questino无关 –