나는 다른 개체와 다 대다 관계가있는 개체가 있습니다.
Django 관리자에서는 다중 선택 상자에 매우 긴 목록이 표시됩니다.필터 ManyToMany 장고 관리에서
ManyToMany 관계를 필터링하여 고객이 선택한 도시에서만 사용할 수있는 범주 만 가져옵니다.
이것이 가능합니까? 내가 위젯을 만들어야합니까? 그렇다면 - 표준 ManyToMany 필드의 비헤이비어를 어떻게 복사합니까? filter_horizontal 함수도 필요합니다.
이 내 단순화 된 모델입니다 :
class City(models.Model):
name = models.CharField(max_length=200)
class Category(models.Model):
name = models.CharField(max_length=200)
available_in = models.ManyToManyField(City)
class Customer(models.Model):
name = models.CharField(max_length=200)
city = models.ForeignKey(City)
categories = models.ManyToManyField(Category)
프로젝트에이 코드를 추가 한 후 'Available categories'필드에서 옵션을 선택한 후에도 선택한 옵션 상자 (예제에서 선택한 "선택한 범주"아래에 있음)가 비어 있음을 확인했습니다. 이것을 구현하는 데 뭔가 빠졌나요? – Silfheed
리스트 이해력을 사용하여 추가 감축 : self.fields [ 'categories'] .wwget.choices = [(선택 사항. 선택 사항, 이름)] –
무엇이'cat_id'입니까? – Sevenearths