У объекта 'RelatedManager' нет атрибута '_meta'
У меня есть представление, которое различает две разные формы путем проверки кнопок отправки name. Первый случай UserProfileForm работает просто отлично, но случай BankForm возвращает ошибку
У объекта 'RelatedManager' нет атрибута '_meta'
Почему?
# views.py
def render_dashboard_profile(request):
# Get the user object
user = request.user
# Get the bank object
bank_obj = Bank.objects.get(account_holder=user)
# Create a pre-populated form instance for both models
user_profile_form = UserProfileForm(instance=user.userprofile)
bank_form = BankForm(instance=user.userprofile)
# Create Context
context = {
'user_profile_form': user_profile_form,
'bank_form': bank_form,
'bank_obj': bank_obj
}
if request.method == 'POST':
form = {}
# Determine which form was submitted
if 'profile-submit' in request.POST:
form = UserProfileForm(request.POST, instance=user.userprofile) # that one works
elif 'bank-submit' in request.POST:
form = BankForm(request.POST, instance=user.account_holder) # breaks here
if form.is_valid():
form.save()
return render(request, 'dashboard/dashboard_profile.html', context)
else:
return render(request, 'dashboard/dashboard_profile.html', context)
# forms.py
class BankForm(ModelForm):
"""
A form to change the bank data of a user
"""
class Meta:
model = Bank
fields = ['name', 'bic', 'iban']
# models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
surname = models.CharField(max_length=30)
..
class Bank(models.Model):
"""
Stores data about the bank account of a user/investor
"""
account_holder = models.ForeignKey(User, on_delete=models.CASCADE, related_name='account_holder')
name = models.CharField(max_length=30)
bic = models.CharField(max_length=10)
iban = models.CharField(max_length=30)