|as_crispy_field передано недопустимое или несуществующее поле django?
views.py
def VendorEdit(request, id=0):
if request.method == "GET":
vendor = CustomUser.objects.get(pk=id)
print(vendor)
form = VendorCreationForm(instance=vendor)
vendordetails = VendorDetails.objects.filter(vendoruser_id=vendor.id)
print(vendordetails)
vendordetailform = VendorAdminDetailsForm(instance=vendordetails[0])
return render(request, 'vendor/edit.html', {'form':form, 'vendor':vendor, 'vendordetailform':vendordetailform})
else:
vendor = CustomUser.objects.get(pk=id)
form = VendorCreationForm(request.POST, instance=vendor)
vendordetails = VendorDetails.objects.filter(vendoruser_id=vendor.id)
vendordetailform = VendorAdminDetailsForm(request.POST, request.FILES, instance=vendordetails[0])
if form.is_valid() and vendordetailform.is_valid():
vendor=form.save()
# vendordetailform.instance.vendoruser = vendor
vendordetailform.save()
# vendor.is_active = False
# vendor.save()
return redirect('login')
edit.html
<form method="POST" action="{% url 'vendor_edit' vendor.id %}" enctype='multipart/form-data'>
{% csrf_token %}
{{ vendorform.email|as_crispy_field}}
{{ vendorform.first_name|as_crispy_field}}
{{ vendorform.last_name|as_crispy_field}}
{{ vendorform.mobile_number|as_crispy_field}}
{{ vendorform.password1|as_crispy_field}}
{{ vendorform.password2|as_crispy_field}}
{{ vendordetailform.type_of_vendor|as_crispy_field}}
{{ vendordetailform.aadhar_number|as_crispy_field}}
{{ vendordetailform.aadhar_image|as_crispy_field}}
{{ vendordetailform.pan_number|as_crispy_field}}
{{ vendordetailform.pan_image|as_crispy_field}}
{{ vendordetailform.store_name|as_crispy_field}}
{{ vendordetailform.brand_name|as_crispy_field}}
{{ vendordetailform.mail_id|as_crispy_field}}
{{ vendordetailform.contact_no|as_crispy_field}}
{{ vendordetailform.gst_number|as_crispy_field}}
{{ vendordetailform.attach_gst_cert|as_crispy_field}}
{{ vendordetailform.acct_number|as_crispy_field}}
{{ vendordetailform.attach_passbook|as_crispy_field}}
{{ vendordetailform.ifsc_code|as_crispy_field}}
{{ vendordetailform.insta_account|as_crispy_field}}
{{ vendordetailform.website|as_crispy_field}}
{{ vendordetailform.street_name|as_crispy_field}}
{{ vendordetailform.city|as_crispy_field}}
{{ vendordetailform.pincode|as_crispy_field}}
<button type="submit" class="btn btn-dark" value="Submit">Preview</button> 
<a href="{% url 'login' %}">Already a Vendor?</a>
</form><br>
После того, как пользователь зарегистрировался, я позволяю ему предварительно просмотреть и отредактировать свои данные, когда он отредактирует свои данные и просмотрит их, затем нажмите кнопку отправить. Это приведет к перенаправлению на вход в систему. Опция редактирования не работает и после предварительного просмотра не перенаправляет на вход пользователя. пожалуйста, нужна помощь.
Вы пытаетесь отобразить vendorform.password1 и vendorform.password2 как хрустящие поля.
Однако эти поля не существуют в вашей форме поставщика.
Если у вас есть password1 и password2 в модели CustomeUser, просто добавьте эти поля в VendorCreationForm.
class VendorCreationForm(UserCreationForm):
class Meta:
model = CustomUser
fields = ['email','first_name','last_name','mobile_number','password1','password2']
Более того, вы используете неправильное имя формы в своем шаблоне. Вы передаете форму как 'form' в контексте, но используете 'vendorform' в шаблоне.
Должно быть
{{form.email|as_cripsy_field}}
#etc