視圖.py
@login_required
def become_vendor(request):
vendordetailform = VendorAdminDetailsForm()
if request.method == 'POST':
vendordetailform = VendorAdminDetailsForm(request.POST, request.FILES)
if vendordetailform.is_valid():
vendordetailform.instance.vendoruser = request.user
request.user=vendordetailform.save()
request.user.is_active=False
request.user.save()
user_details = CustomUser.objects.filter(id=request.user)
vendor_details = user_details[0].vendor_details.all()
return render(request,'vendor/preview.html', {'user_details':user_details, 'vendor_details':vendor_details})
else:
vendordetailform = VendorAdminDetailsForm()
return render(request, 'vendor/become_vendor.html', {'vendordetailform':vendordetailform})
模型.py
class CustomUser(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
mobile_number = models.IntegerField(blank=False, null=True)
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
customer = models.BooleanField(default=False)
vendor = models.BooleanField(default=False)
# is_approved = models.BooleanField(default=True)
id = models.AutoField(primary_key=True, editable=True)
userid= models.CharField(max_length=100, unique=True, null=True)
objects = UserManager()
def __str__(self):
return str(self.email) '-' self.userid
class VendorDetails(models.Model):
vendoruser = models.ForeignKey(CustomUser, null=True,on_delete=models.CASCADE, related_name='vendor_details')
type_of_vendor = models.CharField(max_length=200)
aadhar_number = models.CharField(max_length=200)
aadhar_image = models.ImageField(upload_to='Images')
pan_number = models.CharField(max_length=200)
pan_image = models.ImageField(upload_to='Images')
store_name = models.CharField(max_length=200)
brand_name = models.CharField(max_length=200)
mail_id = models.EmailField(max_length=200)
contact_no = models.IntegerField(blank=True, null=True)
gst_number = models.CharField(max_length=100)
attach_gst_cert = models.ImageField(upload_to='Images')
acct_number = models.CharField(max_length=100)
attach_passbook = models.ImageField(upload_to='Images')
ifsc_code = models.CharField(max_length=100)
fb_account = models.CharField(max_length=100,blank=True, null=True)
insta_account = models.CharField(max_length=100,blank=True, null=True)
website = models.CharField(max_length=100,blank=True, null=True)
door_no = models.CharField(max_length=100,blank=True, null=True)
street_name = models.CharField(max_length=100, blank=True, null=True)
city = models.CharField(max_length=100, blank=True, null=True)
pincode = models.IntegerField(blank=True, null=True)
def __str__(self):
return str(self.id) " - " str(self.vendoruser)
我有兩個模型 1. User 模型,2. VendorDetails 模型(vendoruser 通過與 vendordetails 的外鍵關系連接) 如果請求的用戶正在申請供應商,我在這里保存用戶額外的詳細資訊 (VendorDetailsForm)。我可以在 VendorDetails 模型中保存請求的用戶詳細資訊。但是當我獲得請求的用戶 ID 時,我不能。相反,我得到了 vendordetails 模型外鍵欄位。在這里,我想停用隨此供應商詳細資訊表單一起提供的請求用戶。我正進入(狀態Field 'id' expected a number but got <VendorDetails: [email protected]>.
uj5u.com熱心網友回復:
你的問題是,你要分配request.user到vendordetailform.save()這是不正確洗掉該行并傳遞request.user.id到CustomUser
嘗試是這樣的。
@login_required
def become_vendor(request):
vendordetailform = VendorAdminDetailsForm()
if request.method == 'POST':
vendordetailform = VendorAdminDetailsForm(request.POST, request.FILES)
if vendordetailform.is_valid():
vendordetailform.instance.vendoruser = request.user
vendordetailform.save()
request.user.is_active=False
request.user.save()
user_details = CustomUser.objects.filter(id=request.user.id)
vendor_details = user_details[0].vendordetails_set.all()
return render(request,'vendor/preview.html', {'user_details':user_details, 'vendor_details':vendor_details})
else:
vendordetailform = VendorAdminDetailsForm()
return render(request, 'vendor/become_vendor.html', {'vendordetailform':vendordetailform})
uj5u.com熱心網友回復:
試試這個: user_details = CustomUser.objects.filter(id=request.user.id)
if vendordetailform.is_valid():
# Some code ...
user_details = CustomUser.objects.filter(id=request.user.id)
# Some code ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/371876.html
