При сохранении экземпляра в БД постоянно выдается ошибка AttributeError 'UserBill' object has no attribute 'get.
Итак, имеется Django 4 и Python 3.9
Managers.py
class PaymentManager:
"""
Менеджер управления финансовыми операциями пользователей
"""
def __init__(self, request, model):
self.request = request
self.model = model
def create_bill(self):
new_bill = self.model.objects.create(
title=self.request.POST['title'],
slug=slugify(translit(str(self.request.POST['title']), 'ru', reversed=True)),
owner=self.request.user
)
new_bill.save()
return new_bill
Views.py
class BillCreateView(CreateView):
model = UserBill
form_class = BillCreateForm
template_name = 'payment/new_bill_form.html'
def post(self, request, *args, **kwargs):
new_bill = PaymentManager(request=self.request, model=self.model)
return new_bill.create_bill()
Forms.py
class BillCreateForm(forms.ModelForm):
"""
Форма создания счета пользователя
"""
class Meta:
model = UserBill
fields = [
'title',
]
Models.py
class UserBill(models.Model):
title = models.CharField('Название', max_length=255)
slug = models.SlugField('Идентификатор', max_length=255, db_index=True, unique=True)
owner = models.ForeignKey(TayleUser, related_name='own_bills', verbose_name='Счета', on_delete=models.CASCADE)
balance = models.PositiveSmallIntegerField('Баланс', default=1000)
register_date = models.DateTimeField('Дата регистрации', auto_now_add=True)
last_visit_date = models.DateTimeField('Дата последнего просмотра', auto_now=True)
active = models.BooleanField('Активен', default=True)
class Meta:
verbose_name = 'Счета'
verbose_name_plural = 'Счет'
db_table = 'bills'
def get_absolute_url(self):
return reverse('payment_detail', args=[str(self.slug)])
Беда в том что каждый раз при заполнении и отправке формы я получаю ошибку AttributeError 'UserBill' object has no attribute 'get'. Я пробовал писать и без managers.py прямо во вьхе результат тотже, но при этом в БД все сохраняется. Помогите пожалуйста понять что я упустил.
Спасибо за внимание.
spoiler
AttributeError at /bill/create/
'UserBill' object has no attribute 'get'
Request Method: POST
Request URL: http://127.0.0.1:8000/bill/create/
Django Version: 4.0.4
Exception Type: AttributeError
Exception Value:
'UserBill' object has no attribute 'get'
Exception Location: /home/rufuzzz/Projects/tayle_project/venv/lib/python3.9/site-packages/django/middleware/clickjacking.py, line 27, in process_response
Python Executable: /home/rufuzzz/Projects/tayle_project/venv/bin/python
Python Version: 3.9.2
Python Path:
['/home/rufuzzz/Projects/tayle_project/core',
'/usr/lib/python39.zip',
'/usr/lib/python3.9',
'/usr/lib/python3.9/lib-dynload',
'/home/rufuzzz/Projects/tayle_project/venv/lib/python3.9/site-packages']
Server time: Thu, 19 May 2022 19:44:29 +0300
Traceback Switch to copy-and-paste view
/home/rufuzzz/Projects/tayle_project/venv/lib/python3.9/site-packages/django/core/handlers/exception.py, line 55, in inner
response = get_response(request) …
Local vars
/home/rufuzzz/Projects/tayle_project/venv/lib/python3.9/site-packages/django/utils/deprecation.py, line 136, in __call__
response = self.process_response(request, response) …
Local vars
/home/rufuzzz/Projects/tayle_project/venv/lib/python3.9/site-packages/django/middleware/clickjacking.py, line 27, in process_response
if response.get("X-Frame-Options") is not None: …
Local vars
Request information
USER
user1@mail.com
GET
No GET data
POST
Variable Value
csrfmiddlewaretoken
'llYfZuovSYd77T70wc1tiR61IbJOWod07Jq93TcXRUUf1cpYtfWjgR5bXkRWmbN8'
title
'ячЯЧяссмчсям'
create
'Зарегистрировать'
FILES
No FILES data