いくつかのフィールドを持つフォームがあります。 2つ以外のすべてのフィールドをフォームに表示したい。ただし、1つのフィールドデータを表示する必要があります。 フォームを取得できましたが、表示するDBからデータを取得できませんでした。djangoでのレンダリング中にデータを取得する
Model.py
class Company(models.Model):
STATUS_CHOICES=(
('service','service'),
('product','product'),
)
user=models.OneToOneField(settings.AUTH_USER_MODEL)
company_name=models.CharField(max_length=250)
company_address=models.CharField(max_length=250)
Company_telephone=models.CharField(max_length=250,blank=True)
company_email=models.CharField(max_length=250,blank=True)
company_website=models.CharField(max_length=250,blank=True)
VAT=models.CharField(max_length=250,blank=True)
Service_Tax=models.CharField(max_length=250,blank=True)
company_PAN=models.CharField(max_length=250,blank=True)
company_bankdetails=models.CharField(max_length=250,blank=True)
invoice_type=models.CharField(max_length=250,choices=STATUS_CHOICES,default='service')
def __str__(self):
return 'self.user.company_name'
forms.py
class companyeditform(forms.ModelForm):
class Meta:
model=Company
exclude = ('user','company_name',)
views.py
@login_required
def companyadd(request):
if request.method == 'POST':
company_form=companyeditform(instance=request.user.company,data=request.POST)
if company_form.is_valid():
new_form=company_form.save(commit=False)
new_form.save()
return render(request,'account/dashboard.html',{'section':'addcompany'})
else:
company_form=companyeditform(instance=request.user.company)
company_details=Company.objects.get(user=request.user.company)
return render(request,'account/company.html',{'company_form':company_form})
フォームが計画通りにすべての作品が表示されます。しかしcompany_nameを取得していない。 このクエリを使用して会社名を取得します。
company_details=Company.objects.get(user=request.user.company)
Djangoは次のエラーを与える:
Cannot query "self.user.company_name": Must be "User" instance.
login.requiredデコレータは現在のユーザーが有効なユーザーであり、認証されているため、request.userはAnonymousUserになりません。 –