¿Cómo puedo cambiar un valor booleano con la solicitud POST Django

Editar

Mi objetivo es crear un pequeño comercio electrónico. En mi índice tengo una lista de productos, uno de los atributos es un booleano llamado in_cart que indica si el producto está en el carrito o no. Por defecto, todos los valores booleanos son falsos. En mi plantilla hay una tabla con todos los productos junto a los cuales pongo un botón "agregar al carrito", que redirige a la plantilla del carrito. Sin embargo, cuando hago clic en Agregar al carrito, el valor del booleano en cuestión no cambia a verdadero. ¿Alguna idea

    <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>

Y estas son mis opiniones:

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)

Modelo

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

URLs

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

Error en mi terminal

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

Así se ve en localhost:

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

Error en mi terminal

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

Así se ve en localhost:

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

Así se ve en localhost:

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

Error en mi terminal

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

Así se ve en localhost:

Respuestas a la pregunta(1)

Su respuesta a la pregunta