在django表单中显示预填充字段
我正在开发一个需要向多个用户发送电子邮件的应用程序。从单独的管理页面中选择用户,然后在“发送新闻稿”操作中创建新闻稿对象,并将HttpResponseRedirect返回到新闻稿的管理编辑页面。我想做的不是为收件人创建一个多选择列表(列表中的地址太多,无法使用),而是创建一个div,列出所选电子邮件地址供参考,而不具有任何编辑功能。我该怎么做 不确定为什么这是相关的,但时事通讯模型看起来像这样在django表单中显示预填充字段,django,django-forms,django-admin,Django,Django Forms,Django Admin,我正在开发一个需要向多个用户发送电子邮件的应用程序。从单独的管理页面中选择用户,然后在“发送新闻稿”操作中创建新闻稿对象,并将HttpResponseRedirect返回到新闻稿的管理编辑页面。我想做的不是为收件人创建一个多选择列表(列表中的地址太多,无法使用),而是创建一个div,列出所选电子邮件地址供参考,而不具有任何编辑功能。我该怎么做 不确定为什么这是相关的,但时事通讯模型看起来像这样 class Newsletter(models.Model):
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中将收件人显示为不可编辑的电子邮件地址列表。我不想只禁用小部件,因为电子邮件模型中有太多的电子邮件,我只想在管理员编辑页面的某个地方列出为此特定新闻稿选择的电子邮件。最简单的方法:只读字段
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
请为您的新闻稿模型添加代码,任何相关的查看代码似乎对我都不起作用,我得到了django.core.exceptions.importerlyconfigured:“newslettesadmin.fields”指的是表单中缺少的字段“\u recipients”。只需将收件人添加为只读字段,效果与我想要的一样。您使用的是什么版本的django?在字段中指定只读字段是完全有效的,因为至少1.3。否则,您将无法控制它的去向。在字段中指定只读不会导致问题,但将方法指定为字段似乎是导致错误的原因。我使用的是1.4。不,它适用于1.4。也适用于1.3!我已经用了很多年了。检查此简单示例:适用于任何模型管理员:
readonly_fields=(“_foo”),fields=(“_foo”,def_foo(self,obj):返回obj