2015-02-09 43 views
1

我有一個輪詢應用程序與模型「選擇」之一,包括2個外鍵字段鏈接到「人」模型。Django多個外鍵 - 顯示相關領域的詳細信息管理頁面添加/編輯

我想在選擇人物的「名字」後自動填充相關的「photo_other」字段(包含圖片鏈接)。 「name」也是與Choice模型鏈接的外鍵字段。

models.py

class Choice(models.Model): 
    name = models.ForeignKey(Person) 
    photo_other = models.ForeignKey(Person) 
    rating = models.DateTimeField(blank=True, null=True) 

def __unicode__(self): 
    return smart_unicode(self.name) 

class Person(models.Model): 
    name = models.CharField(max_length=250) 
    photo = models.ImageField(upload_to="photos") 
    pub_date = models.DateTimeField() 

def __unicode__(self): 
    return smart_unicode(self.name) 

回答

1

你爲什麼要存儲在兩個不同的表相同的值時,他們是通過一個foreign key連接?這只是沒有意義。

class Choice(models.Model): 
    name = models.ForeignKey(Person) 
    rating = models.DateTimeField(blank=True, null=True) 

    @property 
    def photo_other(self): 
     return self.name.photo 

class Person(models.Model): 
    name = models.CharField(max_length=250) 
    photo = models.ImageField(upload_to="photos") 
    pub_date = models.DateTimeField() 

爲了使photo_otherChoice模型的管理頁面下可見,你可以做以下;

class ChoiceAdmin(admin.ModelAdmin): 
    list_display = ['name', 'rating', 'get_photo'] 

    def get_photo(self, obj): 
     return obj.photo_other 
    get_photo.short_description = 'Photo' 
+0

謝謝。雖然這不起作用。我沒有在管理員 – Uma 2015-02-10 05:36:05

+0

中看到相關字段,如上所述我在模型中添加了該屬性,並且未在管理員詳細信息頁面上顯示照片字段。 – Uma 2015-02-10 06:56:46

+0

謝謝,它的工作原理部分是因爲它只在列表顯示中顯示此部分,而不在詳細信息頁面中顯示。對此有何建議? – Uma 2015-02-17 07:01:06

相關問題