У меня проблема, скорее всего, глупая, но которую я не могу решить, ошибка атрибута после выполнения функции представлений
В режиме разгрузки моего приложения Django я получаю:
AttributeError
Exception Value:
'Client' object has no attribute 'get'
(...)
Error during template rendering
In template (...)Comptabo/templates/base.html, error at line 0
Когда я нажимаю на имя клиента на моей странице индекса. Я уже много чего перепробовал и просмотрел соответствующие темы, а также документацию, не понимаю, откуда возникла ошибка. Это не проблема, связанная с шаблоном или файлом URL. Если у кого-то есть идея
Моя клиентская функция в views.py:
def client(request, id = 0):
if id:
client = Client.objects.get(id = id)
form = ClientForm(client)
factures = Facture.objects.filter(client = client)
devis = Devis.objects.filter(client = client)
form_fact = FactureForm()
form_dev = DevisForm()
return render(request,'client.html',{'client' : client
, 'form' : form, 'factures': factures, 'devis': devis
, 'formf': form_fact,'formd': form_dev})
else:
return redirect('/index')
Мой класс Client в models.py:
class Client(models.Model):
nom = models.CharField(max_length = 30)
adresse_voie = models.CharField(max_length = 30)
adresse_code = models.IntegerField()
adresse_ville = models.CharField(max_length = 30)
adresse_pays = models.CharField(max_length = 30, default = "France")
tel = models.CharField(max_length = 12)
fax = models.CharField(max_length = 12, blank = True)
mail = models.EmailField()
def __str__(self):
return self.nom
Хуже всего то, что функция Client.objects.get(id = id)
работает, потому что в локальных переменных моя переменная клиента содержит запрошенный объект:
client = Client: ICE
devis = QuerySet []
factures = QuerySet []
form = ClientForm bound=True, valid=True, fields=(nom;adresse_voie;
adresse_code;adresse_ville;adresse_pays;tel;fax;mail)
form_dev = DevisForm bound=False, valid=Unknown, fields=(prestations;total_HT;date)
form_fact = FactureForm bound=False, valid=Unknown, fields=(prestations;total_HT;paye;date)
id = 1
request = WSGIRequest: GET '/client/1/'