0

我正在开发一个需要向多个用户发送电子邮件的应用程序。从单独的管理页面中挑选用户,然后在“发送时事通讯”操作中创建时事通讯对象,并将 HttpResponseRedirect 返回到时事通讯的管理编辑页面。我想要做的不是为收件人提供多个选择列表(列表中的地址太多,无法使用)我只想有一个 div 列出所选的电子邮件地址以供参考,没有任何编辑能力。我怎么做?

不知道为什么这是相关的,但时事通讯模型看起来像这样

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 admin 中将收件人显示为不可编辑的电子邮件地址列表。我不想只禁用小部件,因为电子邮件模型中有太多电子邮件,我只想在管理员编辑页面的某处列出为此特定时事通讯选择的那些。

4

1 回答 1

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
于 2012-12-07T02:13:07.040 回答