+-
如何将一个表单的值保存在模型的两个字段中?

我想把录取表的值保存在录取和in_stock字段中,在填表页面中没有in_stock表

模型.py

class Admission(models.Model):
name = models.CharField(max_length=100,db_index=True)
date = models.DateTimeField()
in_stock = models.IntegerField(blank=True)
admission = models.IntegerField()

def __str__(self):
    return '{}'.format(self.name)

窗体.py

class AdmissionForm(forms.ModelForm):
class Meta:
    model = Admission
    fields = ['date', 'name', 'admission', 'in_stock']

views.py

class AdmissionCreate(View):
def get (self, request):
    form = AdmissionForm()
    return render(request, 'inventory/addAdmissions.html', context={'form': form})

def post(self, request):
    form = AdmissionForm(request.POST)
    if form.is_valid():
        form.save()
        return redirect(admission_list)
0
投票

如果我目前的理解是,你想提交一个表单,但有一个字段的值重复到另一个字段,即录取字段是111,保存表单后in_stock也是111。其中一个方法是在表单验证中定义一个 clean_fieldname 功能。

https:/docs.djangoproject.comen3.0refformsvalidation。

class AdmissionForm(forms.ModelForm):
    class Meta:
        model = Admission
        fields = ['date', 'name', 'admission', 'in_stock']

    def clean_in_stock(self):
        return self.cleaned_data['admission']

我的一个疑问是,你是在请求... ... in_stock 在您的表单中,该字段可能是在HTML中呈现的,并在表单提交时输入一个值。您可能不希望这样做,您可以在表单的Meta中完全排除该字段。