Django admin ManyToManyField按同一选项卡的类型筛选

2024-04-26 20:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个表名

  1. 保留
  2. 服务

    在服务表中,我存储了两种类型的数据

    1. 服务
    2. 加载项服务

型号.py

class services(models.Model):   
    Service_type_CHOICES = (
     (1, 'Service'),
     (2, 'Addon'),
    )

    service_id=models.IntegerField(primary_key=True)
    title=models.CharField(max_length=200)
    description=models.TextField()
    type=models.PositiveSmallIntegerField(choices=Service_type_CHOICES,) 

def __str__(self):
    return self.title

预订表

class reservations(models.Model):
    user_id=models.IntegerField()
    arrival=models.DateTimeField()
    services_id=models.ManyToManyField(services, related_name='services')
    addons_id=models.ManyToManyField(services, related_name='addons')

现在在我的管理它显示如下截图 enter image description here

目前它正在显示两个feilds下的所有服务。我想按类型过滤。如何在Django admin中实现这一点。你知道吗

我想首先显示服务类型1。 i、 e cat1和cat2

在addons id上,我只想显示类型2服务。 i、 e附件1和附件2


Tags: selfid类型modeltitlemodelstypeservice
1条回答
网友
1楼 · 发布于 2024-04-26 20:28:53

您需要使用文档中指定的ManyToManyField.limit_choices_to

https://docs.djangoproject.com/en/1.11/ref/models/fields/

就你而言:

class reservations(models.Model):
    user_id=models.IntegerField()
    arrival=models.DateTimeField()
    services_id=models.ManyToManyField(services, limit_choices_to={'type': 1}, related_name='services')
    addons_id=models.ManyToManyField(services, limit_choices_to={'type': 2}, related_name='addons')

相关问题 更多 >