2012-12-07 37 views
0

我正在開發一個應用程序,需要向多個用戶發送電子郵件。用戶從一個單獨的管理頁面中挑選出來,然後在「發送簡報」操作中創建一個簡報對象,並將HttpResponseRedirect返回到簡報的管理員編輯頁面。我想要做的不是爲收件人提供多個選擇列表(列表中有太多地址供它使用)我只希望有一個列出所選電子郵件地址以供參考的div,而無需任何編輯能力。我怎麼做?以django格式對預填充字段進行Dsiplaying

不知道爲什麼這是相關的,但通訊模型看起來像這樣

class Newsletter(models.Model):                                              
    owner = models.ForeignKey(User, related_name='+', blank=False)                                     
    sent = models.BooleanField(default=False)                                          
    date_created = models.DateTimeField(auto_now_add=True)                                       
    date_sent = models.DateTimeField(null=True)                                          
    subject = models.CharField(max_length=255)                                          
    content = HTMLField()                                               
    recipients = models.ManyToManyField(Email, related_name='+')                                      

class Meta:                                                  
    ordering = ['date_sent', 'date_created']            

的東西有沒有意見,我要的是顯示收件人爲Django管理電子郵件地址的不可編輯列表。我不想僅僅禁用小部件,因爲電子郵件模型中有太多的電子郵件,我只想爲管理員編輯頁面上某處列出的特定時事通訊選擇那些電子郵件。

+0

,請爲您的通訊模型和任何相關的視圖代碼 –

回答

0

最簡單的方法:只讀字段。

class MyAdmin(admin.ModelAdmin): 
    readonly_fields = ('_recipients',) 
    fields = ('_recipients',) 

    def _recipients(self, obj): 
    return u', '.join([x.email for x in obj.recipients.all()]) 
    _recipient 
+0

似乎並沒有爲我工作添加代碼,我得到django.core.exceptions.ImproperlyConfigured:「NewsletterAdmin.fields」指的是外地「_recipients」那從表單中缺少。 –

+0

只需將收件人作爲只讀字段添加就像我想要的那樣工作。 –

+0

你使用的是什麼版本的Django?在字段中指定只讀字段從1.3開始是完全有效的。否則,你無法控制它去哪裏。 –