【问题标题】:ValueError too many values to unpack (expected 2) in djangoValueError 在 django 中解压的值太多(预期为 2)
【发布时间】:2020-07-27 07:18:39
【问题描述】:

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

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

views.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)

【问题讨论】:

    标签: python python-3.x django django-models django-views


    【解决方案1】:

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

    parlourdetails = get_object_or_404(Parlour, slug=slug)
    

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

    【讨论】:

      猜你喜欢
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      相关资源
      最近更新 更多