Django 德扬戈';字符串索引必须是整数,而不是unicode';

Django 德扬戈';字符串索引必须是整数,而不是unicode';,django,django-admin,Django,Django Admin,当我在管理站点中运行此操作(向所选人员发送电子邮件)时,出现错误: 字符串索引必须是整数,而不是unicode django在线:[p.user\u email]) 如何修复它 from django.contrib import admin from myproject.myapp.models import People from django.core.mail import send_mail def send_mail(modeladmin, request, queryset):

当我在管理站点中运行此操作(向所选人员发送电子邮件)时,出现错误:

字符串索引必须是整数,而不是unicode django在线:
[p.user\u email])

如何修复它

from django.contrib import admin
from myproject.myapp.models import People
from django.core.mail import send_mail

def send_mail(modeladmin, request, queryset):
    for p in queryset:
        send_mail('People information', p.name, p.time, 'mymail@gmail.com'
    [p.user_email])
send_mail.short_description = u'Send e-mail to selected people'

class PeopleAdmin(admin.ModelAdmin):
    list_display = ('name', 'user_email','time')
    actions = [send_mail]

admin.site.register(People, PeopleAdmin)

实际上,你忘记了
后面的逗号了mymail@gmail.com“
,因此它将其解释为
”mymail@gmail.com“[p.user\u email]
,就好像您试图为字符串文本编制索引一样。

谢谢。这个可以解决它。实际上我有:send_-mail()在[p.user_-email])@user1682273行上正好有3个参数(5个给定):您定义了
send_-mail(modeladmin、request、queryset)
,然后从内部调用它。重命名您的
send_-mail
,或将core.mail.send_-mail导入为其他名称。此外,如果答案解决了您的问题,您应该将其标记为已接受,并针对新的、不相关的问题打开新问题。这是因为方法定义为:
send\u mail(主题、消息、发件人、收件人)
。您有两个参数,
message
应该在其中。