【发布时间】:2021-12-31 08:11:38
【问题描述】:
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>
forms.py
class VendorCreationForm(UserCreationForm):
class Meta:
model = CustomUser
fields = ['email','first_name','last_name','mobile_number']
def save(self, commit=True):
user = super().save(commit=False)
user.vendor = True
# user.is_approved = False
if commit:
user.save()
return user
CATEGORY = [
('loom','LOOM'),
('boutique', 'BOUTIQUE'),
('wedding','WEDDING'),
]
class VendorAdminDetailsForm(forms.ModelForm):
type_of_vendor = forms.CharField(max_length=200,label='What type of
Vendor?', widget=forms.Select(choices=CATEGORY))
class Meta:
model = VendorDetails
fields = ['type_of_vendor','aadhar_number','aadhar_image', 'pan_number','pan_image', 'store_name', 'brand_name', 'mail_id', 'contact_no',
'gst_number','attach_gst_cert', 'acct_number','attach_passbook', 'ifsc_code', 'fb_account', 'insta_account', 'website',
'door_no', 'street_name', 'city', 'pincode' ]
labels = {
'aadhar_image': 'Attach Aadharcard',
'pan_image' : 'Attach Pancard',
'gst_number': 'GST Number',
'attach_gst_cert': 'Attach GST Certificate',
'acct_number': 'Bank Account number',
'attach_passbook': 'Attach Bank Passbook or Cheque Leaf'
}
preview.html
<div class="container m-5">
<dl class="row">
<h1>Admin Details</h1>
<dt class="col-sm-3">First Name</dt>
{% if user_details %}
{% for data in user_details %}
<dd class="col-sm-9">{{data.first_name}}</dd>
{% endfor %}
{% endif %}
<dt class="col-sm-3">Last Name</dt>
{% if user_details %}
{% for data in user_details %}
<dd class="col-sm-9">{{data.last_name}}</dd>
{% endfor %}
{% endif %}
<dt class="col-sm-3">Aadhar Number</dt>
{% if vendor_details %}
{% for data in vendor_details %}
<dd class="col-sm-9">{{data.aadhar_number}}</dd>
{% endfor %}
{% endif %}
{% for data in user_details %}
<button type="submit" class="btn btn-
success">Save</button>   
<a href="{% url 'vendor_edit' data.id %}" class="btn btn-
info">Edit</a>
{% endfor %}
</div>
用户注册后,我允许他们在编辑详细信息和预览后预览和编辑详细信息,然后单击提交。它将重定向到登录。编辑选项不起作用,预览提交后不会重定向到登录用户。一旦这些都完成(在'登录'之前,我想在管理面板中给非活动用户(is_active = False),然后给(is_active = True)。请需要帮助。
【问题讨论】:
-
请分享表格(vendordetailform 和 vendorform)。
-
forms.py 添加到问题中。
标签: python django django-views django-templates