Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
仅在Django Admin中显示多对多关系中所有对象列表中的某些对象_Django_Django Models_Django Admin_Many To Many_Django Queryset - Fatal编程技术网

仅在Django Admin中显示多对多关系中所有对象列表中的某些对象

仅在Django Admin中显示多对多关系中所有对象列表中的某些对象,django,django-models,django-admin,many-to-many,django-queryset,Django,Django Models,Django Admin,Many To Many,Django Queryset,在myApp中,我有一个拥有不同ClientFacility的客户。我也有一个项目是为客户做的。此外,我还有属于某个项目(以及间接属于某个客户)的订单。项目订单将仅在与项目相关的客户拥有的ClientFacility上执行 我试图理解多对多的过滤,但我不能理解,因为我不知道如何动态获取我的项目编号 在myApp管理部分()中,每次创建订单时,我只想显示与订单所属项目的客户机关联的ClientFacility。我如何才能做到这一点,以及在myApp的哪个.py上 现在,ManyToManyFiel

在myApp中,我有一个拥有不同ClientFacility的客户。我也有一个项目是为客户做的。此外,我还有属于某个项目(以及间接属于某个客户)的订单。项目订单将仅在与项目相关的客户拥有的ClientFacility上执行

我试图理解多对多的过滤,但我不能理解,因为我不知道如何动态获取我的项目编号

在myApp管理部分()中,每次创建订单时,我只想显示与订单所属项目的客户机关联的ClientFacility。我如何才能做到这一点,以及在myApp的哪个.py上

现在,ManyToManyField显示我数据库中的每个ClientFacility,这是不够的

如果我在我的模型之间建立关系的方式不正确,那么这很好,我想学习。请提供一些指导方针,链接,例子等,而不是说这一切都是错误的,它必须改变

这是我的代码:

class Project(models.Model):
    project_number = models.IntegerField(unique=True,primary_key=True)
    project_name = models.CharField(max_length=400)
    client = models.ForeignKey("Client", on_delete=models.CASCADE,verbose_name = "Customer of the project")

class Order(models.Model): 
    order_project = models.ForeignKey("Project", on_delete=models.CASCADE,verbose_name = "Project to which this order is associated",related_name= "orders_for_project")
    order_number = models.IntegerField(default=1,validators=[MinValueValidator(1)])
    order_facility = models.ManyToManyField("ClientFacility") #TODO filter. An order may involve more than 1 facility and a facility can be involved in more than 1 order as time passes
    
    class Meta:
        constraints = [ models.UniqueConstraint(fields= ['order_project','order_number'], name = 'unique_order_id'),]
    
class Client(models.Model):
    client_name = models.CharField(max_length=300) 

class ClientFacility(models.Model):
    facility_name = models.CharField(max_length=300) 
    client = models.ForeignKey("Client", on_delete=models.CASCADE,verbose_name = "Owner of the facility")  #a ClientFacility only belongs to 1 Client

    def __str__(self):
        return self.facility_name

    class Meta:
        verbose_name_plural = "Client facilities"