Я хотел бы заполнить два столбца в моей базе данных после проверки наличия каких-либо данных. Была создана страница html для проверки значения 'epass', и если она существует, она должна отредактировать модели, чтобы добавить «main_status», «main_dt».
ftForm. html
<form action="{% url 'ft_new' %}" method="POST" enctype="multipart/form-data" style="width:70%;margin:0 auto;">
{% csrf_token %}
<div class="form-row">
<div class="col">
<label for="epass">E-PASS</label>
<input id="epass" class="form-control" type="text" name="epass" value="">
</div>
</div>
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li class="{{ message.tags }}" style="color:red">{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
<button type="submit" class="btn btn-info my-4 btn-block">Salvar</button>
</form>
views.py
def ft_new(request):
form = EPASSForm(request.POST or None)
if form.is_valid():
post = form.save(commit=False)
epassForm = request.POST.get('epass')
if FtMain.objects.filter(epass=epassForm):
all = FtMain.objects.filter(epass=epassForm)
post.epass = all.get('epass')
post.insp_ymd = all.get('insp_ymd')
post.line_nm = all.get('line_nm')
post.model_code = all.get('model_code')
post.pba_status = all.get('pba_status')
post.pba_dt = all.get('pba_dt')
post.main_status = 'Y'
post.main_dt = datetime.now()
post.bcr = all.get('bcr')
form.save()
messages.success(request, 'Salved with success')
return redirect('ft_new')
else:
messages.error(request, 'There is no insppection')
else:
return HttpResponse('Page Error')
return render(request,'control/ftForm.html',{'form':form})
models.py
class FtMain(models.Model):
insp_ymd = models.DateField(blank=True, null=True)
line_nm = models.CharField(max_length=20, blank=True, null=True)
model_code = models.CharField(max_length=20, blank=True, null=True)
epass = models.CharField(max_length=25, blank=True, null=True)
pba_status = models.CharField(max_length=20, blank=True, null=True)
pba_dt = models.DateTimeField(blank=True, null=True)
main_status = models.CharField(max_length=20, blank=True, null=True)
main_dt = models.DateTimeField(blank=True, null=True)
bcr = models.CharField(max_length=20, blank=True, null=True)
class Meta:
managed = False
db_table = 'ft_main'
forms.py
class EPASSForm(ModelForm):
class Meta:
model = FtMain
fields = ['insp_ymd','line_nm','model_code','pba_status','pba_dt','main_status','main_dt','bcr']
в результате произошла следующая ошибка: слишком много значений распаковать (ожидается 2)
введите описание изображения здесь