繁体   English   中英

在 Django 查询集中出现 _set 错误,object 没有属性

[英]getting error with _set in Django Query-Set, object has no attribute

我使用_set客户服务之间建立ManyToMany关系,但最终出现错误:

/customer/1/ 处的 AttributeError
'carOwner' object 没有属性 'serviceOrderX_get'

有没有人想帮帮我..

模型.py

...

class carOwner(models.Model):
    name_X = models.CharField( max_length=150, null=True)
    email_X = models.CharField( max_length=150, null=True)
    phoneNo_X =models.CharField( max_length=150, null=True)

    def __str__(self):
        return self.name_X

class serviceOrderX(models.Model):
    CATEGORES = (...)
    carName_X = models.CharField( max_length=150, null=True)
    carNO_X = models.CharField( max_length=150, null=True)
    carOwner_X = models.ManyToManyField(carOwner)
    catagores_X = models.CharField(max_length=200,null=True,choices=CATEGORES)
    price_X = models.IntegerField(  null=True)
    service_X = models.ManyToManyField(orderService)

    def __str__(self):
        return str(f'{self.carName_X} , {self.carNO_X}')

视图.py

...

def CustomerX(request , pk):
    customersX = carOwner.objects.get(id=pk)
    cuter = customersX.serviceOrderX_set.all()

    contX = {
        'customer' : cuter , 
    }
    return render(request, 'customer.html' , contX)

我认为您的代码中只是有一个错字。 应该set它而不是get -> customersX.serviceOrderX_set.all()

https://docs.djangoproject.com/en/4.1/topics/db/examples/many_to_many/

您还可以在您的 ManyToManyField 上设置一个related_name ,例如service_orders ,以便您可以执行customersX.service_orders.all()

顺便提一句。 只是一个提示,在 python 中为您的字段使用驼峰式大小写并不是一种好的风格。 只需执行car_owner_x并为您的 class 名称使用例如 ` ServiceOrderX https://peps.python.org/pep-0008/

如果你想关联字段,你应该添加的第一个参数是你想要关联的 model 的名称。 在您的情况下,您可以解决此问题

class serviceOrderX(models.Model):
    # change here
    service_X = models.ManyToManyField(carOwner)

在这里阅读更多: https://docs.djangoproject.com/en/4.1/topics/db/examples/many_to_many/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM