首页 > 解决方案 > ValueError 在 django 中解压的值太多(预期为 2)

问题描述

我在 django 中得到 ValueError。你能帮我解决这个问题吗?我试了几次。但仍然收到此错误。

模型.py

class Parlour(models.Model):
    name = models.CharField(max_length=100)
    address = models.CharField(max_length=200)
    owner_name = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
    phone = models.CharField(max_length=10)
    slug = models.SlugField(null=True,blank=True)


    def __str__(self):
        return self.name+" "+self.owner_name

class Service(models.Model):
    parlour = models.ForeignKey(Parlour,on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    cost = models.IntegerField()


    def __str__(self):
        return self.name+" "+self.parlour.name

视图.py

def parlourdetail(request,slug):
    parlourdetails = get_object_or_404(Parlour,slug)
    services = Service.objects.filter(parlour=parlourdetails)
    context = {
        'parlourdetails':parlourdetails,
        'services':services,
    }
    return render(request,'parlourapp/parlour_detail.html',context)

标签: pythonpython-3.xdjangodjango-modelsdjango-views

解决方案


get_object_or_404应该为查询参数传递关键字参数

parlourdetails = get_object_or_404(Parlour, slug=slug)

仅仅slug作为位置参数传递是没有意义的,Django 不知道要查询哪个字段


推荐阅读