Это, вероятно, потому что вид часть этого. Вы должны заменить эту часть на правильный путь к вашему представлению в вашем проекте. Я просто оставил образец для вашего.

тировать:

Моя цель - создать небольшую электронную коммерцию. В моем индексе у меня есть список товаров, один из атрибутов - логическое значение in_cart, которое указывает, есть ли товар в корзине или нет. По умолчанию все логические значения имеют значение false. В моем шаблоне есть таблица со всеми продуктами, рядом с которой я положил кнопку «добавить в корзину», которая перенаправляет на шаблон корзины. Однако, когда я нажимаю кнопку «Добавить в корзину», значение рассматриваемого логического значения не изменяется на «истина». есть идеи?

    <table>
    <tr>
        <th>List of car parts available:</th>
    </tr>
    <tr>
        <th>Name</th>
        <th>Price</th>
    </tr>
    {% for product in products_list %}
    <tr>
      <td>{{ product.id }}</td>
      <td>{{ product.name }}</td>
      <td>${{ product.price }}</td>
      <td>{% if not product.in_cart %}
              <form action="{% url 'add_to_cart' product_id=product.id %}" method="POST">
                {% csrf_token %}
                <input type="submit" id="{{ button_id }}" value="Add to cart">
              </form>
          {% else %}
              {{ print }}
          {% endif %}
      </td>
    </tr>
    {% endfor %}
  </table>

  <a href="{% url 'cart' %}">See cart</a>

И это мои взгляды:

def index(request):
    if request.method == "GET":
        products_list = Product.objects.all()
        template = loader.get_template('products/index.html')
        context = {'products_list': products_list}
        return HttpResponse(template.render(context, request))
    return HttpResponse('Method not allowed', status=405)


def cart(request):
    cart_list = Product.objects.filter(in_cart = True)
    template_cart = loader.get_template('cart/cart.html')
    context = {'cart_list': cart_list}
    return HttpResponse(template_cart.render(context, request))


def add_to_cart(request, product_id):
    if request.method == 'POST':
        try:
            product = Product.objects.get(pk=product_id)
            product.in_cart = True
            product.save()
        except Product.DoesNotExist:
            return HttpResponse('Product not found', status=404)
        except Exception:
            return HttpResponse('Internal Error', status=500)
    return HttpResponse('Method not allowed', status=405)

Модель:

class Product(models.Model):
    name = models.CharField(max_length=200)
    price = models.IntegerField()
    in_cart = models.BooleanField(default=False)
    ordered = models.BooleanField(default=False)
    def __str__(self):
        return self.name

URL-адрес

urlpatterns = [
    path('', views.index, name='index'),
    path('cart/', views.cart, name='cart')
    re_path(r'^add_to_cart/(?P<product_id>[0-9]+)

Ошибка в моем терминале

File "/Users/Nicolas/code/nicobarakat/labelachallenge/products/urls.py", line 8
    re_path(r'^add_to_cart/(?P<product_id>[0-9]+)

Вот как это выглядит в localhost:

, views.add_to_cart, name='add_to_cart') ]

Ошибка в моем терминале

File "/Users/Nicolas/code/nicobarakat/labelachallenge/products/urls.py", line 8
    re_path(r'^add_to_cart/(?P<product_id>[0-9]+)$', views.add_to_cart, name='add_to_cart')
          ^
SyntaxError: invalid syntax

Вот как это выглядит в localhost:

, views.add_to_cart, name='add_to_cart') ^ SyntaxError: invalid syntax

Вот как это выглядит в localhost:

, views.add_to_cart, name='add_to_cart') ]

Ошибка в моем терминале

File "/Users/Nicolas/code/nicobarakat/labelachallenge/products/urls.py", line 8
    re_path(r'^add_to_cart/(?P<product_id>[0-9]+)$', views.add_to_cart, name='add_to_cart')
          ^
SyntaxError: invalid syntax

Вот как это выглядит в localhost:

Ответы на вопрос(1)

Ваш ответ на вопрос