AttributeError 'Client' объект не имеет атрибута 'get' - PullRequest
0 голосов
/ 24 октября 2019

У меня проблема, скорее всего, глупая, но которую я не могу решить, ошибка атрибута после выполнения функции представлений

В режиме разгрузки моего приложения 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/'

1 Ответ

0 голосов
/ 24 октября 2019

Вы должны были опубликовать полный трекбек, чтобы мы могли видеть, откуда исходит ошибка. Но эта строка явно неверна:

form = ClientForm(client)

Первый позиционный аргумент формы - это данные публикации. Вы, вероятно, имели в виду

form = ClientForm(instance=client)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...