2016-09-06 73 views
2

我有一個與django-admin面板有關的小問題。 我有2種型號:如何在django-admin中顯示外鍵的選擇?

from django.db import models 

class Subject(models.Model): 
    subject = models.CharField(max_length=30, choices=[('P', 'Personal'), ('W', 'Work')]) 

    def __str__(self): 
     return self.subject 

class BlogPost(models.Model): 
    id = models.AutoField(unique=True, primary_key=True) 
    subject = models.ForeignKey(Subject, on_delete=models.CASCADE) 
    text = models.TextField(null=False) 
    pic = models.ImageField(upload_to='static/img/', default='static/img/no-image.png') 
    date = models.DateTimeField() 

    def __str__(self): 
     return self.subject 

但在管理面板,每當我試圖創建的博客文章,下拉菜單中不顯示任何的主題的選擇。我需要編輯管理渲染功能嗎?

回答

2

順便說一下,您必須首先添加主題,以便它們可以出現在您的外鍵選項中。你可以得到相同的結果:

class BlogPost(models.Model): 
    id = models.AutoField(unique=True, primary_key=True) 
    subject = models.CharField(max_length=30, choices=[('P', 'Personal'), ('W', 'Work')]) 

    def __str__(self): 
     return self.subject 

你想要什麼ForeignKey的?

+1

嗯......你說得對。你的選擇非常簡單。謝謝! – Disciples

+0

但是......這個想法是,你可以添加管理面板的主題,並設置帖子主題。現在爲了創造新的主題,我必須傷心地硬編碼。 – Disciples

+1

那麼你必須堅持你的初始模型,但刪除主題選擇參數。添加主題後,BlogPost的外鍵將自動顯示爲創建的主題的下拉列表 –