【问题标题】:How do I retrieve Email-ID from auth_user table in Django?如何从 Django 的 auth_user 表中检索电子邮件 ID?
【发布时间】:2017-08-27 16:51:10
【问题描述】:

如何从 Django 的 auth_user 表中检索电子邮件 ID? 如果我访问 auth_user 表,我只会得到 id 和用户名。

模型.py

​​>
class AuthUser(models.Model):
id = models.IntegerField(primary_key=True)
    password = models.CharField(max_length=128)
    last_login = models.DateTimeField()
    is_superuser = models.BooleanField()
    username = models.CharField(max_length=30, unique=True)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    email = models.CharField(max_length=75)
    is_staff = models.BooleanField()
    is_active = models.BooleanField()
    date_joined = models.DateTimeField()

class Meta:
    db_table = 'auth_user'

def as_json(self):
    return dict(
        user_id=self.id,
        username=self.username,
        email=self.email
    )

views.py

​​>
class UserViewSet(generics.ListCreateAPIView):
    serializer_class = AuthUserSerializer

    def get_queryset(self):
        q = self.kwargs['username']
        if q != '*':
            return AuthUser.objects.filter(username=q)
        else:
            return AuthUser.objects.all()

urls.py

​​>
url(r'^getUserData/(?P<username>.+)/$',
                                                  views.UserViewSet.as_view(),
                                                  name='user-details'),

我只需要来自 AuthUser 对象的电子邮件

【问题讨论】:

  • 你使用的是标准的 django 用户对象吗?像这样导入: from django.contrib.auth.models import User
  • 发布您的 auth_user 型号代码
  • @kujosHeist:发布代码。

标签: django django-1.5


【解决方案1】:

您是否创建了模板?您的视图类应该指定您要使用哪个 html 文件来呈现视图

template_name = 'app/template.html'

查看文档中的示例: https://docs.djangoproject.com/en/1.10/topics/class-based-views/generic-display/

然后您可以在您的模板中使用以下代码来列出用户电子邮件

     <ul>
        {% for user in object_list %}
            <li>{{ user.email }}</li>
        {% endfor %}
    </ul>

【讨论】:

  • 我不想在 HTML 中呈现视图。相反,我想将用户电子邮件地址传递给发送电子邮件的函数。
  • $.ajax({ type: "POST", contentType: 'application/json', url: "/send_alert_email/", data: '{ "recipient" : '+user.email+', "alert_message" : "' + alert_flu_shot_message+'"}', dataType: "json", }).done(function(){ console.log("Email sent"); }).error(function(){ console.log ("未发送电子邮件。"); });
猜你喜欢
  • 2013-12-22
  • 1970-01-01
  • 2013-10-31
  • 2012-04-17
  • 1970-01-01
  • 2015-08-28
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
相关资源
最近更新 更多