問題

這個正在驅使我堅果.它之前沒有發生過(甚至得到了我必須為user-manual做的螢幕截圖,因為客戶需要它).

我首先在生產伺服器上注意到它,然後我檢查併發生在與Django一起的dev伺服器中.模型出現在django管理員的main-page上,我可以單擊它,它將顯示銷售點列表.每當我想編輯現有例項或建立新例項時都會出現問題.

我只是點選連結(或將其放在條上),它只是掛起.

 class PointOfSaleAdmin(admin.ModelAdmin):
    list_display = ('id','business', 'user', 'zipcode', 'address','date_registered')
    list_filter = ('business',)
    filter_horizontal = ('services',)
admin.site.register(models.PointOfSale, PointOfSaleAdmin)
 

這是模型的註冊.所有模型都在管理應用程式中註冊,使用者測試這是一個超級使用者.模型是:

 class PointOfSale(models.Model):
    user = models.ForeignKey(User)
    zipcode = models.ForeignKey(Zipcode)
    business = models.ForeignKey(Business)
    services = models.ManyToManyField(Service, 
        verbose_name='available services')
    date_registered = models.DateField(auto_now_add=True)
    address = models.CharField(max_length=300)
 

加上一些不應該非常重要的方法.此外,在此之前的最後一次,我在建立所有這些方法後測試了管理員,所以這不應該是重要的.

管理員很少必須訪問此頁面.通常它只是列出PoS,但它仍然困擾我.任何想法為什麼它可以掛起?所有其他模型都工作得很好.

這發生在Django 1.2.5和1.3上

編輯:

我修改了超時限制.它是有效的,但不知何故,它實際發生需要幾分鐘.所以,背景中有一些東西需要很長時間.我不明白如何只發生這個模型,它發生在不同的環境中(以及小資料集)


我幾乎覺得自己好像在拍打。我的錯誤是不睡這麼久。

問題是zipcode列表非常大(幾十萬個),外來鍵欄位作為html select標籤載入,這意味著它載入每個條目.這是一個簡單資料的問題.

現在我想知道如何控制管理員中顯示外來鍵的方式.有人可以幫助嗎?

  最佳答案

在 admin.py 檔案中,在適當的管理類下,設定

 raw_id_fields = ('zipcode',)
 

這將顯示zipcode的PK而不是下拉列表.

有沒有理由將zipcode設定為自己的模型而不是使用CharField或實際的zipcode ModelField ?

  相同標籤的其他問題

pythondjangodjango-admin