I added an application to my project https://github.com/DrMartiner/django-yandex-kassa I implemented the twist, model, made migrate

I get an error

Internal Server Error: /home/ Traceback (most recent call last): File "/home/vois/virtual_env/oi/lib/python3.4/site-packages/django/core/handlers/exception.py", line 35, in inner response = get_response(request) File "/home/vois/virtual_env/oi/lib/python3.4/site-packages/django/core/handlers/base.py", line 128, in _get_response response = self.process_exception_by_middleware(e, request) File "/home/vois/virtual_env/oi/lib/python3.4/site-packages/django/core/handlers/base.py", line 126, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/vois/virtual_env/oi/lib/python3.4/site-packages/django/views/generic/base.py", line 69, in view return self.dispatch(request, *args, **kwargs) File "/home/vois/virtual_env/oi/lib/python3.4/site-packages/django/views/generic/base.py", line 89, in dispatch return handler(request, *args, **kwargs) File "/home/vois/virtual_env/oi/lib/python3.4/site-packages/django/views/generic/base.py", line 150, in get context = self.get_context_data(**kwargs) File "/home/vois/code/project/kassa/views.py", line 17, in get_context_data amount = count * item.price AttributeError: 'NoneType' object has no attribute 'price' [30/Mar/2018 04:38:25] "GET /home/ HTTP/1.1" 500 82767 

models.py

 from django.db import models from django.template.defaultfilters import truncatechars from yandex_kassa.utils import get_uuid class Item(models.Model): name = models.CharField('Наименование', max_length=32) price = models.PositiveIntegerField('Стоимость') def __unicode__(self): return truncatechars(self.name, 16) class Meta: verbose_name = 'Товар' verbose_name_plural = 'Товары' class Order(models.Model): uuid = models.CharField('ID заказа', max_length=64, default=get_uuid, primary_key=True) item = models.ForeignKey('kassa.Item', verbose_name='Товар', on_delete=models.DO_NOTHING) count = models.PositiveIntegerField('Кол-во', default=1) payment = models.ForeignKey('yandex_kassa.Payment', verbose_name='Платеж', on_delete=models.DO_NOTHING) amount = models.PositiveIntegerField('Сумма заказа') class Meta: verbose_name = 'Заказ' verbose_name_plural = 'Заказы' 

views.py

 from random import randint from django.http import Http404 from django.views.generic import DetailView from django.views.generic import TemplateView from yandex_kassa.forms import PaymentForm from .models import Item from .models import Order from yandex_kassa.models import Payment class HomeView(TemplateView): template_name = 'home.html' def get_context_data(self, **kwargs): count = randint(1, 3) item = Item.objects.all().order_by('?').first() amount = count * item.price payment = Payment(order_amount=amount) payment.save() order = Order(item=item, count=count, amount=amount, payment=payment) order.save() ctx = super(HomeView, self).get_context_data(**kwargs) ctx['order'] = order ctx['form'] = PaymentForm(initial=dict(orderNumber=order.uuid, sum=amount, customerNumber=payment.customer_number)) return ctx class OrderDetailView(DetailView): model = Order def get_object(self, queryset=None): try: return super(OrderDetailView, self).get_object(queryset) except UnicodeDecodeError: raise Http404 
  • Add the full text of the error and the code relating to it to the question. - Sergey Gornostaev
  • 2
    Judging by the log, you did not fill out the database before using it. - Evgeniy Shubin
  • item = Item.objects.all().order_by('?').first() returns None , that is, there is not a single object of the Item model in the database. - Sergey Gornostaev

0