繁体   English   中英

在 Django 中将用户数据解码为字符串

[英]Decoding User Data to String in Django

我在 Django 中有一个 model 名为 Account

class Account(AbstractBaseUser):
    email = models.EmailField(verbose_name="email", max_length=60, unique=True)

我正在尝试将 email 打印为 views.py 中的字符串。

def fill_view(request):

    # ... authentication ...

    email = Account.objects.filter(email=user.email).first()

    # ... setting up forms ....

    can.drawString(10, 100, email)

我收到以下错误:

 Exception Type: AttributeError at /fill/
 Exception Value: 'Account' object has no attribute 'decode'

将数据从models.py传输到views.py时,如何将email解码为Django中的字符串?

我发现 Reddit 上的这个帖子很有帮助,它让我相信这可能是 mySQL 的问题。

使用@property

@property
  def email_text(self):
     return mark_safe(u"%s") % (escape(self.email))

然后,您可以在保存在email中的任何 email object 上调用它。 所以你只需要做can.drawString(10, 100, email.email_text())

mark_safe 来自 django.utils.safestring,请参见此处

您对 MySQL 没有问题,您根本没有从账户 object 访问 email

account = Account.objects.filter(email=user.email).first()
can.drawString(10, 100, account.email)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM