Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1

'NoneType' object has no attribute

15.02.2019, 20:32. Показов 2716. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь добавить товар в корзину. Хочу начать с простого.
Есть 3 модели: Product, CartItem, Cart.
Для начала хочу взять первую корзину (из всех существующих) и поместить в неё выбранный продукт, но почему-то корзина не определяется...

models
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class CartItem(models.Model):
    product = models.ForeignKey(Product)
    qty = models.PositiveIntegerField(default=1)
    item_total = models.DecimalField(max_digits=9, decimal_places=2, default=0.00)
 
    def __unicode__(self):
        return unicode(self.product.shown_name)
 
 
class Cart(models.Model):
    items = models.ManyToManyField(CartItem, blank=True)
    cart_total = models.DecimalField(max_digits=9, decimal_places=2, default=0.00)
 
    def __unicode__(self):
        return unicode(self.id)
views
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def cart_view(request):
    cart = Cart.objects.first()
    context = {
        'cart': cart
    }
    return render(request, 'products/cart.html', context)
 
def add_to_cart_view(request, product_slug):
    print(1)
    product = Product.objects.get(slug=product_slug)
    new_item, _ = CartItem.objects.get_or_create(product=product, item_total=product.default_price)
 
    cart = Cart.objects.first()
    print(len(Cart.objects.all()))
    print(dir(cart))
 
    if new_item.product not in cart.items.all():
        cart.items.add(new_item)
        cart.save()
        print(cart.items.all())
        return HttpResponseRedirect('/cart/')
    else:
        return HttpResponseRedirect('/cart/')
urls
Python
1
2
url(r'^add_to_cart/(?P<product_slug>[-\w]+)$', add_to_cart_view, name='add_to_cart'),
url(r'^cart/$', cart_view, name='cart'),
template
Python
1
<a href='{% url "add_to_cart" product_slug=product_item.slug %}'><button class="btn btn-primary" type="submit">В корзину</button></a>
Смотрел, функция начинает свою работу, определяет выбранный товар, но почему-то наотрез отказывается его туда добавлять...

Добавлено через 18 минут
С этим разобрался. Нужно было предварительно создать корзину в админке...

Подскажите лучше, как сделать редирект на страницу.
Пробую так
Python
1
return HttpResponseRedirect('/cart/')
кидает на 127.0.0.1:8000/cart/

Если так
Python
1
return HttpResponseRedirect('/cart/')
то кидает на 127.0.0.1:8000/ru/products/add_to_cart/products/cart/

Мне же нужно, чтобы редиректило на 127.0.0.1:8000/ru/productscart/
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2019, 20:32
Ответы с готовыми решениями:

AttributeError: 'NoneType' object has no attribute
class Technic(models.Model): categories_list = ( (None, &quot;Выберите категорию&quot;), (&quot;tv&quot;, &quot;Телевизоры,...

Ошибка 'NoneType' object has no attribute 'auser'
Необходимо автоматически прикреплять имя автора к созданной им статье. В процессе создания происходит ошибка 'NoneType' object has no...

Как прочитать содержимое request.FILES.get и обойти ошибку 'NoneType' object has no attribute 'read'?
Я через ajax отправляю картинку, которую надо сохранить в определённой папке. Я это думаю сделать так: прочитать загруженный файл, и его...

5
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
15.02.2019, 20:40
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
С этим разобрался
Правила

4.10 Если вопрос был решен вами самостоятельно, отпишите об этом в своей теме - есть и другие люди, которые столкнутся с той же проблемой, и им поможет ваш ответ.
5.16 Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
15.02.2019, 21:22  [ТС]
Цитата Сообщение от outoftime Посмотреть сообщение
4.10 Если вопрос был решен вами самостоятельно, отпишите об этом в своей теме - есть и другие люди, которые столкнутся с той же проблемой, и им поможет ваш ответ.
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
С этим разобрался. Нужно было предварительно создать корзину в админке...
Цитата Сообщение от outoftime Посмотреть сообщение
5.16 Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
множество - понятие растяжимое. и в среднем 1 вопрос в день - это много? интересно, где та черта, через которую нельзя переступать? интересно, почему вы мне это пишите? есть ведь куда интересней "экзампляры". вот, например.


да и мне казалось, этот форум создан для того, чтобы друг другу помогали, а не упрекали в чём-то.
0
15.02.2019, 22:43

Не по теме:

Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
мне казалось, этот форум создан для того, чтобы друг другу помогали, а не упрекали в чём-то
Есть и гадить в одном месте?

0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
15.02.2019, 23:58  [ТС]
outoftime,

Не по теме:

м... ну я не только "гажу", если что.

0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
16.02.2019, 02:02
m0nte-cr1st0, я не добавил ссылку на тему которую данная дублирует, видимо поэтому её до сих пор не закрыли модераторы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2019, 02:02
Помогаю со студенческими работами здесь

AttributeError: 'unicode' object has no attribute 'get'
Учу django 1.1 Выдаёт ошибку AttributeError ... 'unicode' object has no attribute 'get' views.py #-*- coding: utf-8...

Проблема object has no attribute 'cleaned_data'
Ребята помогите!!! from django.shortcuts import render from . forms import SubscriberForm def landing(request): ...

'Cart' object has no attribute 'add'
Здравствуйтею. 'Cart' object has no attribute 'add' Файлы приложения cart views.py from django.shortcuts import...

'ImageField' object has no attribute 'value_from_datadict'
я новичок в django, поэтому просто попытался создать и отправить форму. forms.py: from .models import publication from...

Ошибка 'function' object has no attribute 'id'
Добрый вечер. Пытаюсь выполнить лабораторные работы по методичке, однако либо что-то упустил, либо в методичке косяк. По заданию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru