我不能让我的网站显示它的内容,虽然我从我的参考得到了相同的代码

2024-04-24 16:50:32 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我一直在学习django,我正在练习用Mosh编程制作一个电子商务网站。我遇到了一个问题,我不能在网站上展示我的产品。我不知道我做错了什么,所以我改变了参考资料,使用了丹尼斯·艾薇的电子商务网站教程。现在,我面临着同样的问题。我把他的代码和我的代码做了比较,结果完全一样,但我真的不知道我做错了什么

这是他的密码: https://i.stack.imgur.com/Ossxm.png

这就是他得到的结果: https://i.stack.imgur.com/On1ri.png (他使用for loop,它可以访问他的产品模型中的所有内容

这是我的代码:

{% extends 'store/main.html' %}
{% load static %}
{% block content %}
    <div class="row">
        {% for product in products %}
        <div class="col-lg-4">
            <img class='thumbnail' src="{% static 'images/2+placeholder.png' %}" alt="">
            <div class="box-element product">
                <h6><strong>{{product.name}}</strong></h6>
                <hr>

                <button class="btn btn-outline-secondary add-btn">Add to cart</button>
                <a class='btn btn-outline-success' href="#">View</a>
                <h4 style="display: inline-block; float: right"><strong>{{product.price}}</strong> 
                </h4>
            </div>
        </div>
        {% endfor %}
    </div>
{% endblock content %}

这就是我得到的结果: https://i.stack.imgur.com/WsPgT.png

以下是我的看法:

from django.shortcuts import render
from .models import *


def store(request):
    products = Product.objects.all()
    context = {'product': products}
    return render(request, 'store/store.html', context)

def cart(request):
    context = {}
    return render(request, 'store/cart.html', context)

def checkout(request):
    context = {}
    return render(request, 'store/checkout.html', context)

这是我的型号(最新产品):

from django.db import models
from django.contrib.auth.models import User


class Customer(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, 
            blank=True)
    name = models.CharField(max_length=100, null=True)
    email = models.CharField(max_length=100, null=True)

    def __str__(self):
        return self.name


class Product(models.Model):
    name = models.CharField(max_length=100, null=True)
    price = models.FloatField()

    def __str__(self):
        return self.name

有人能开导一下我那愚蠢的小脑袋吗?我太累了,我卡住了


Tags: djangostorenamedivtruereturnpngmodels
1条回答
网友
1楼 · 发布于 2024-04-24 16:50:32

在视图中products的上下文名称是为product设置的,因此请更改此名称

def store(request):
    products = Product.objects.all()
    context = {'products': products}

相关问题 更多 >