У меня есть класс в моем models.py с именем Order
class Order(models.Model):
customer_name = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='customer_name',
)
order_individual_price = models.IntegerField(default=1)
order_name = models.CharField(max_length=200)
order_quantity = models.IntegerField(default=1)
order_total_price = models.IntegerField(default=1)
def __str__(self):
return self.order_name
В моем views.py я создаю новый экземпляр порядка при нажатии кнопки
def ordering(request):
latest_order = Order.objects.all()
menu = Menu.objects.all()
if request.method == 'POST':
if request.user.is_authenticated:
menu_instance = request.POST.get('add')
if menu_instance:
get_order = Menu.objects.get(id=menu_instance)
get_price = get_order.Menu_price
new_order = Order.objects.create(customer_name=request.user,
order_name=get_order, order_individual_price=get_price)
return redirect('shop-ordering')
order_instance = request.POST.get('delete')
else:
messages.info(request, f'Please Sign In First')
return redirect('login')
return render(request, 'shop/ordering.html', {'title':'Ordering', 'latest_order':
latest_order, 'menu':menu})
Попытка получить доступ к идентификатору через оболочку с помощью этой команды
>>> from shop.models import Menu, Order
>>> Order.objects.get(id=1)
Но вместо этого я получаю эту ошибку
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Users/alan/Desktop/FRIENDS_CAFE_DJANGO/venv/lib/python3.8/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/alan/Desktop/FRIENDS_CAFE_DJANGO/venv/lib/python3.8/site-packages/django/db/models/query.py", line 415, in get
raise self.model.DoesNotExist(
shop.models.Order.DoesNotExist: Order matching query does not exist.
Однако, когда я запускаю Order.objects.all()
, он возвращает мне объекты
>>> Order.objects.all()
<QuerySet [<Order: test1>, <Order: test2>]>
Я не трогал ни один из файлов init , и, поскольку django создает идентификатор автоматически, я действительно не понимаю, почему он не присваивает каждому заказу идентификатор.