我有两个表名
服务
在服务表中我存储两种类型的数据
的 Models.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')
目前它正在显示两个领域下的所有服务。我想按类型过滤它。我怎样才能在Django admin中实现这一点。
我想首先显示服务类型1。 即cat1和cat2
并且在插件ID上我只想显示类型2服务。 即Addon1和Addon2
答案 0 :(得分:0)
您需要使用文档中指定的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')