AttributeError: у объекта 'tuple' нет атрибута 'profilePi c' - PullRequest
0 голосов
/ 21 января 2020

У меня есть следующее в моем models.py

profilePic = models.OneToOneField(Document, default=None, null=True, blank=True, on_delete=models.CASCADE)

и в моем views.py

loggedinanon = Anon.objects.get_or_create(username1=loggedinuser)

newdoc = Document(docfile = request.FILES['docfile'])
                newdoc.save()
                loggedinanon.profilePic = newdoc

Я не могу сказать, каким должен быть код, чтобы разрешить документ быть сохраненным как часть анона.

Ответы [ 2 ]

5 голосов
/ 21 января 2020

Измените код на

loggedinanon, created = Anon.objects.get_or_create(username1=loggedinuser)

, потому что get_or_create возвращает кортеж (экземпляр создан)

0 голосов
/ 21 января 2020

Функция get_or_create, возвращает кортеж: (object, create) -object является экземпляром Anon.objects.get_or_create (username1 = loggedinuser) -create является логическим значением (true, если объект создан, или false, если объект получает)

Так что вы можете попробовать:

loggedinanon, creation= Anon.objects.get_or_create(username1=loggedinuser)
newdoc = Document(docfile = request.FILES['docfile'])
newdoc.save()
loggedinanon.profilePic = newdoc    

У меня есть сомнения по поводу последней строки: loggedinanon.profilePi c = newdo c

Я думаю, у вас должно быть что-то еще например:

objectName = ClassName.update (userName = loggedinanon, default = {'profilePi c': newdoc})

В зависимости от отношений вашей модели. Django учебник довольно длинный для чтения, но очень нужен https://docs.djangoproject.com/en/3.0/ref/models/querysets/

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