Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python速成课程,第18章-AttributeError:“Pizza”对象没有属性“entry\u set”_Python_Django - Fatal编程技术网

Python速成课程,第18章-AttributeError:“Pizza”对象没有属性“entry\u set”

Python速成课程,第18章-AttributeError:“Pizza”对象没有属性“entry\u set”,python,django,Python,Django,我刚读完第18章《埃里克·马塔斯的德扬戈入门》。我在views.py中有下面的函数Pizza,它会引发下面提到的属性错误 AttributeError: 'Pizza' object has no attribute 'entry_set' 当我查看我的网站并单击特定比萨饼的链接时,会发生此错误。执行此操作应打开一个新视图,即网站上的一个页面,该页面显示比萨饼的名称以及配料列表,即应执行下面的比萨饼功能 def pizza(request,pizza_id): ""

我刚读完第18章《埃里克·马塔斯的德扬戈入门》。我在views.py中有下面的函数Pizza,它会引发下面提到的属性错误

AttributeError: 'Pizza' object has no attribute 'entry_set'
当我查看我的网站并单击特定比萨饼的链接时,会发生此错误。执行此操作应打开一个新视图,即网站上的一个页面,该页面显示比萨饼的名称以及配料列表,即应执行下面的比萨饼功能

def pizza(request,pizza_id):
    """Show the toppings for a pizza"""
    pizza = Pizza.objects.get(id=pizza_id)
    toppings = pizza.entry_set.order_by('name')
    context = {'pizza': pizza, 'toppings': toppings}
    return render(request, 'pizzeria/pizza.html', context)
下面是我在models.py上的课程。Pizza类创建Pizza对象

class Pizza(models.Model):
    """The name of a specific type of pizza."""
    name = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        """Return a string representation of the model."""
        return self.name

class Topping(models.Model):
    """toppings that belong to specific types of pizzas"""
    pizza = models.ForeignKey(Pizza, on_delete=models.CASCADE)
    name = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        """Return a string representation of the model."""
        return self.name
我按照本书本章中的练习创建了一个Django项目,该项目允许我创建有关特定主题的日志条目。这个期刊项目中的代码工作得很好&我已经或多或少地将这个练习中的代码复制到我的比萨店项目中。我所做的唯一重大改变是,我想按名称而不是按项目中添加到Django数据库的日期对浇头进行排序

与我的非常相似,但没有解决我的问题

如果我有什么可以帮助您排除故障,请告诉我。

由于模型是Topping,而您没有为提供值,因此您可以使用Topping\u集访问Toppings:

由于模型是浇头,并且您没有为提供值,因此可以使用“浇头”设置访问浇头:


旁注:有一个原因,他们使用比萨饼和配料来解释与许多关系相关的各种细节:旁注:有一个原因,他们使用比萨饼和配料来解释与许多关系相关的各种细节:非常感谢。由于我是Django的新手,我假设entry_set是方法/查询的正确名称。我从未考虑过我的类的名称可以/将被合并到方法/查询的名称中。现在开始更多的调试,谢谢@罗伯特布朗:没有entry类的entry_集的问题是,如果你有多个foreignkey到Pizza,那么查询所指的内容就不明确了。谢谢!由于我是Django的新手,我假设entry_set是方法/查询的正确名称。我从未考虑过我的类的名称可以/将被合并到方法/查询的名称中。现在开始更多的调试,谢谢@罗伯特布朗:没有entry类的entry_集的问题是,如果你有多个foreignkey到Pizza,那么查询所指的内容就不明确了。
def pizza(request,pizza_id):
    pizza = Pizza.objects.get(id=pizza_id)
    toppings = pizza.topping_set.order_by('name')
    context = {'pizza': pizza, 'toppings': toppings}
    return render(request, 'pizzeria/pizza.html', context)