锚定标签不';t将项目提交给购物车python django
我的锚定标签不';t将项目提交给购物车python django,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我的制服模型显示了一个项目仪表板。我正在尝试将项目发送到购物车以签出项目。我在加载我的内部服务器时没有问题,也没有调试问题。但是,当查看我的管理订单项目模型时,没有向其推送任何内容: url.py from apparelapp import views ... # TEMPLATE URLS app_name = 'apparelapp' urlpatterns = [ ... path('add_to_cart/<slug>/', views.add_to_cart, name
制服
模型显示了一个项目仪表板。我正在尝试将项目发送到购物车以签出项目。我在加载我的内部服务器时没有问题,也没有调试问题。但是,当查看我的管理订单项目模型时,没有向其推送任何内容:
url.py
from apparelapp import views
...
# TEMPLATE URLS
app_name = 'apparelapp'
urlpatterns = [
...
path('add_to_cart/<slug>/', views.add_to_cart, name="add_to_cart"),
...
]
# add to cart
def add_to_cart(request, slug):
item = get_object_or_404(Uniform, slug=slug)
order_item = OrderItem.objects.create(item = uniform)
order_qs = Transaction.objects.filter(user=request.user, ordered=False)
if order_qs.exists():
order = order_qs[0]
if transaction.items.filter(item__slug=item.slug).exists():
order_item.quantity += 1
order_item.save()
else:
transaction.item.add(item)
else:
ordered_date = timezone.now()
order = Transaction.objects.create(user=request.user, ordered_date = ordered_date)
order.items.add(order_item)
messages.success(request, "Added to cart!")
return redirect('apparelapp:item_list')
#OrderItem
class OrderItem(models.Model):
uniform = models.OneToOneField(Uniform, on_delete = models.PROTECT)
start_date = models.DateTimeField(auto_now_add=True)
ordered_date = models.DateTimeField(null = True)
quantity = models.IntegerField(default = 1)
def __str__(self):
return self.uniform.description
#Item
class Uniform(models.Model):
category = models.CharField(choices = CATEGORY_CHOICES, max_length=11)
description = models.CharField(max_length = 50)
price = models.FloatField(max_length = 6)
size = models.CharField(choices=CLOTHES_SIZE, max_length=4, blank=True)
style = models.CharField(choices=STYLE_CHOICES, max_length=15, blank=True)
image = models.ImageField(upload_to='uniforms/')
slug = models.SlugField()
class Meta:
ordering = ['category']
def __str__(self):
return '{}: {} - {} - ${}'.format(self.category, self.description, self.size, self.price)
def add_to_cart_url(self):
return reverse("apparelapp:add_to_cart", slug=slug)
型号.py
from apparelapp import views
...
# TEMPLATE URLS
app_name = 'apparelapp'
urlpatterns = [
...
path('add_to_cart/<slug>/', views.add_to_cart, name="add_to_cart"),
...
]
# add to cart
def add_to_cart(request, slug):
item = get_object_or_404(Uniform, slug=slug)
order_item = OrderItem.objects.create(item = uniform)
order_qs = Transaction.objects.filter(user=request.user, ordered=False)
if order_qs.exists():
order = order_qs[0]
if transaction.items.filter(item__slug=item.slug).exists():
order_item.quantity += 1
order_item.save()
else:
transaction.item.add(item)
else:
ordered_date = timezone.now()
order = Transaction.objects.create(user=request.user, ordered_date = ordered_date)
order.items.add(order_item)
messages.success(request, "Added to cart!")
return redirect('apparelapp:item_list')
#OrderItem
class OrderItem(models.Model):
uniform = models.OneToOneField(Uniform, on_delete = models.PROTECT)
start_date = models.DateTimeField(auto_now_add=True)
ordered_date = models.DateTimeField(null = True)
quantity = models.IntegerField(default = 1)
def __str__(self):
return self.uniform.description
#Item
class Uniform(models.Model):
category = models.CharField(choices = CATEGORY_CHOICES, max_length=11)
description = models.CharField(max_length = 50)
price = models.FloatField(max_length = 6)
size = models.CharField(choices=CLOTHES_SIZE, max_length=4, blank=True)
style = models.CharField(choices=STYLE_CHOICES, max_length=15, blank=True)
image = models.ImageField(upload_to='uniforms/')
slug = models.SlugField()
class Meta:
ordering = ['category']
def __str__(self):
return '{}: {} - {} - ${}'.format(self.category, self.description, self.size, self.price)
def add_to_cart_url(self):
return reverse("apparelapp:add_to_cart", slug=slug)
html
<h2>List of items</h2>
<section class="text-center mb-4">
<div class="row wow fadeIn">
{% for item in object_list %}
<div class="col-lg-3 col-md-6 mb-4">
<div class="card">
<div class="view overlay">
<img src="{{ item.image.url }}" alt="Oh no!" width="200" height="200">
<a>
<div class="mask rgba-white-slight"></div>
</a>
</div>
<div class="card-body text-center">
<label>
<h5>{{ item.description }}</h5>
</label>
<h5>
{% if object.description %}
<strong>
<label for="">{{ item.category }}</label>
</strong>
{% endif %}
</h5>
<div class="row">
<div class="col-lg-2">
<a href="#" class="btn btn-primary" role="button">Size</a>
</div>
<div class="col-lg-10">
<a href="{{ object.get_add_to_cart_url}}" class="btn btn-primary">Add to Cart</a>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
项目列表
{对象_列表%中的项的百分比}
{%endfor%}
最初,我尝试了一次添加一个项目的按钮,它工作了,但没有添加任何其他项目,现在链接作为一个整体无法工作。我的
视图.py
中是否缺少某些内容?如果需要,您可以轻松使用urlpatterns
列表中path
元素的name
属性在项目中导航,而无需更改url本身。要使用此功能,可以使用以下语法进行指定:
{{url''arg1=arg.data}
其中是urlpatterns
的path
元素的name
属性,如我上面所说;arg1不需要作为参数传递,arg.data是要传递的数据
HTML
<div class="col-lg-10">
<a href="{{ url 'add_to_cart' slug=item.slug }}" class="btn btn-primary">Add to Cart</a>
</div>
如果它不起作用,请告诉我。请从项目的
url.py
文件中添加urlpatterns
,在该文件中可以找到url将项目添加到购物车。@PythonNewbie我做了更新。我正在处理这个项目的slug,没有任何东西被推过,也没有错误