2010-05-21 5 views
1

내 장고 관리자는 특정 모델 클래스에서 개체를 보거나 편집하려고 할 때 메모리 사용량과 CPU 로켓을 늘려 서버를 다시 시작해야합니다. 개체 목록을 잘 볼 수는 있지만 개체를 ​​클릭하면 문제가 발생합니다. 다른 모델도 좋습니다. 코드에서 객체를 사용한 작업 (즉, 생성 및 표시)은 괜찮습니다. 관리 인터페이스로 객체를 보려고 할 때만 문제가 발생합니다. 수업은 특히 이국적이지 않습니다.Django 관리자가 하나의 모델에 대해 높은로드를 발생합니다.

class Comment(models.Model): 
    user = models.ForeignKey(User) 
    thing = models.ForeignKey(Thing) 
    date = models.DateTimeField(auto_now_add=True) 
    content = models.TextField(blank=True, null=True) 
    approved = models.BooleanField(default=True) 

    class Meta: 
     ordering = ['-date'] 

아이디어가 있으십니까? 나는 혼란 스럽다. 내가 생각할 수있는 유일한 이유는 thing이 꽤 큰 물체 (몇 킬로바이트) 일지 모르지만, 이해할 때까지 그것이 필요할 때까지는로드되지 않을 것입니다.

+0

관리자 정의는 무엇입니까? 관리자에게'Comment'를 어떻게 등록합니까? –

+0

그냥'admin.site.register (Comment)' – Joe

답변

5

실제로는 Thing 개체의 크기가 아니라 데이터베이스의 사용자 수에 대한 질문입니다. 이것은 ForeignKey의 경우 기본적으로 Django의 관리자가 모든 기존 항목을 포함하는 드롭 다운 목록을 제공하기 때문입니다. 당신이 많은 것을 가지고 있다면 장고는 그 목록을 채우기 위해 모든 것을로드 할 것입니다. 사용자의 경우도 마찬가지입니다.

가장 좋은 방법은 ModelAdmin 하위 클래스의 raw_id_fields에 문제가되는 필드를 추가하는 것입니다. 이렇게하면 id에 대한 간단한 텍스트 필드로 표시가 팝업 룩업 창으로 바뀝니다.

+1

네, 그게 가장 확실합니다. 고마워요. 약 200,000 가지가 있으며, 이는