에서 나는 다음과 같은 모델을 가지고 :장고 ManyToMany은 관리자
class Device(models.Model):
device_name = models.CharField(max_length=50L, blank=True)
hostname = models.CharField(max_length=255L, blank=True)
ip = models.CharField(max_length=255L, blank=True)
vendor = models.CharField(max_length=255L, blank=True)
model = models.CharField(max_length=255L, blank=True)
town = models.CharField(max_length=255L, blank=True)
...
class Group(models.Model):
device = models.ManyToManyField(Device)
group_name = models.CharField(max_length=255L, blank=True, unique=True)
장치 테이블 개 이상의 30,000 레코드를 포함하고, 그룹은 5000, 10000 및 더 많은 장치를 보유 할 수 있습니다.
내가 필요 :
- 그룹에 장치를 추가;
- 그룹의 내용보기;
- 전체 그룹 편집 (장치 제거).
표준 도구 (filter_horizontal
, 인라인, raw_id_fields
)는 적합하지 않습니다. 양식 편집 Group
이 매우 느리게 작동하기 때문에 모든 장치 레코드를 검색합니다. 필요한 장치를 선택하려면 추가 정보 (모델, 제조업체, 위치 등)가 필요합니다. 그룹에서 필요한 장치를 제거하려면 30000 장치 목록을 스크롤하거나 그룹에서 7000 장치를 스크롤하고 CTRL 키를 사용하여 장치를 삭제해야합니다. 이 방법은 적용되지 않습니다. 내가 장치에 사용자 지정 작업을 추가하여 해결 그룹에 장치를 추가
문제
나머지 문제를 ((가) list_filter
및 search_fields
내가 올바른 결과를 얻을 사용하여 다음 행동 "그룹에 추가") 나는 천국 찾지 못했습니다.
이 방법으로 문제를 해결하고 싶습니다. 사용자가 그룹을 입력하고 그룹 제목을 봅니다. 그가 그룹의 이름을 클릭하면 그룹에 속한 장치의 목록을 모든 장치 필드가있는 테이블로 얻습니다.
어떻게 달성 할 수 있습니까?
나는이 응답을 두려워했습니다 : "관리 사이트를 사용하지 마십시오." 저는 웹 프로그래머가 아니며 CSS 및 Java 스크립팅에 깊이 관여 할 계획이 없습니다. 그러나 다른 방법이없는 것 같습니다. 답장을 보내 주셔서 대단히 감사합니다. – Pavel
확실한 것. 웹 개발에 "뛰어들"싶지 않으면 django가 당신을위한 도구가 아닙니다. 당신이 필요로하는 이런 종류의 커스터마이징을 허용하는 것을 찾을 수 있을지는 모르겠지만 실제로는 CSM (콘텐츠 관리 시스템)이 아니란 것 같습니다. 직접 배우는 것보다 더 좋은 방법은 없습니다. (또한 자바 스크립트를 피하고 jQuery로 건너 뛰는 것이 좋습니다.) – yuvi
흠, 어쩌면 관리자 사이트 사용을 포기하지 않아도됩니다. 그룹을 표시 할 URL을 덮어 쓸 수 있습니다. url (r '^ admin/mcs/group/\ d +', views.my_group) url (r '^ admin /', include (admin.site.urls)) 보기 및 양식 – Pavel