2011-04-14 110 views
4

我試圖讓模型的屬性顯示在另一個模型的Django admin更改/添加頁面中。這裏是我的模型:在Django中顯示外鍵數據admin更改/添加頁面

class Download(model.Model): 
    task = models.ForeignKey('Task') 

class Task(model.Model): 
    added_at = models.DateTimeField(...) 

不能圍繞切換外鍵,所以我不能使用內聯,當然fields = ('task__added_at',)並不在這裏工作的。

什麼是這樣的標準方法? (或者我伸出管理員太遠?)

我已經使用自定義模板,所以如果這是可以做的答案。但是,我更願意在管理員級別執行此操作。

+0

能否請您給身邊你想在管理,實現工作流程的一些更多的環境?從你的文章中,這聽起來像你正在編輯一個下載,並需要訪問任務模型,是否正確? – Brandon 2011-04-14 15:05:42

+0

用戶請求下載,通過延遲任務生成並通過電子郵件發送給他們(我在Windows上,因此沒有芹菜,更多的可惜) – 2011-04-14 15:55:03

+0

好的,那麼您需要如何處理外鍵字段? – Brandon 2011-04-14 16:36:27

回答

9

如果您不需要編輯它,你可以將其顯示爲只讀字段:

class DownloadAdmin(admin.ModelAdmin): 
    readonly_fields = ('task_added_at',) 

    def task_added_at(self, obj): 
     return obj.task.added_at 
+0

這是行不通的,因爲readonly_fields必須是字段的一個子集,並且我不能將函數添加到字段中。 – 2011-04-14 15:54:07

+0

我不知道你的意思。這確實有效 - 請參閱[文檔](http://docs.djangoproject.com/en/1.3/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields)。 – 2011-04-14 16:45:56

+0

也適用於字段集。榮譽。 – 2012-08-20 05:01:19

相關問題