#python #django
#python #django
Вопрос:
Как я могу сохранить форму django без проверки. У меня простая форма. Например, у меня есть выпадающий список, если пользователь выбирает figi, он выводит другое поле из модельного платежа, а если пользователь выбирает банковского кассира, он выводит другое поле из модельного платежа. Поэтому я хочу их сохранить. Но он не сохраняется, когда я использую form.is_valid(), и он по-прежнему показывает мне сообщение с кодом 200, но его нет в моей базе данных, и когда я удаляю form.is_valid(), он выдает ошибку ValueError: ошибка проверки. Теперь поле изображения не сохраняется
class payments(models.Model):
Amount=models.IntegerField(default=00000)
figiID=models.CharField(default='F-00000',max_length=10,required=False)
Bank_Teller=models.ImageField(upload_to='media/',required=False)
HTML
<select id='modePayment'>
<option value='test1'>Figi</option>
<option value='test2'>Bank Teller</option>
</select><br><br>
<div class="test1 pricebox">
<form method="post">
{% csrf_token %}
<h6>Amount:{{pDetail.Amount}}</h6>
<h6>Figi-ID{{pDetail.figiID}}</h6>
<button style="background:#4CAF50;color:white;width:150px;height:40px;" value="submit" >Invest</button>
</form>
</div>
<div class="test2 pricebox">
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<h6>Amount:{{pDetail.Amount}}</h6>
<h6>Bank Teller{{pDetail.Bank_Teller}}</h6>
<button style="background:#4CAF50;color:white;width:150px;height:40px;" value="submit" >Invest</button>
</form>
</div>
views.py
def dashboard(request):
if request.user.is_authenticated:
allDocs = Registration.objects.all()
pDetail=payment_form()
if request.method=='POST':
pDetail=payment_form(request.POST,request.FILES)
if pDetail.is_valid():
pDetail.save()
context={'doc':allDocs,'pDetail':pDetail,'iDetail':investment}
return render(request,'dashboard.html',context)
else:
return redirect('Tan:login')
Комментарии:
1. можете ли вы поделиться кодом для своей формы?
Ответ №1:
Вы забыли сохранить переменную формы pDetail
.
Views.py
def dashboard(request):
if request.user.is_authenticated:
allDocs = Registration.objects.all()
pDetail=payment_form()
if request.method=='POST':
pDetail=payment_form(request.POST,request.FILES)
if pDetail.is_valid():
pDetail=pDetail.save()
pDetail.save() #<----- Add this
context={'doc':allDocs,'pDetail':pDetail,'iDetail':investment}
return render(request,'dashboard.html',context)
else:
return redirect('Tan:login')
Комментарии:
1. Он сохраняется при выборе пользователем figi, т. Е. сохраняет текстовые данные, но когда пользователь выбирает опцию «банковский кассир», для которой требуется изображение, это не сохраняется.
2. @hansTheFranz да, и так тоже.
3. Он сохраняется при выборе пользователем figi, т. Е. сохраняет текстовые данные, но когда пользователь выбирает опцию «банковский кассир», для которой требуется изображение, он не сохраняет его в admin, но я получаю код 200