smart_unicode在我的Django项目中不起作用

时间:2015-11-14 08:00:58

标签: python django database python-2.7

嘿伙计们我是Django的新手并且陷入了一些幼稚的错误。  制作了一个项目名称" singup"并添加了一个" smart_unicode实用程序"在我的模型中但不幸的是,在我的管理网站中我没有看到任何更改。我想将每个存储的注册称为电子邮件。需要帮助  这是我的models.py文件:

from django.db import models
from django.utils.encoding import smart_unicode
# Create your models here.
class signup(models.Model):
    first_name=models.CharField(max_length=12,null=False,blank=False)
    last_name=models.CharField(max_length=12,null=False,blank=False)
    email=models.EmailField(max_length=60,null=False,blank=False)
    timestamp=models.DateTimeField(auto_now_add=True,auto_now=False)
    updated=models.DateTimeField(auto_now_add=False,auto_now=True)


def __unicode__(self):
    return smart_unicode(self.email)

这是我的admin.py

    from django.contrib import admin

# Register your models here.
from models import signup

class signupAdmin(admin.ModelAdmin):
    class Meta:
        model=signup
admin.site.register(signup,signupAdmin)

这是我的管理站点图片。

enter image description here

3 个答案:

答案 0 :(得分:1)

方法的名称应为__unicode__。有双下划线,而不是单个。

def __unicode__(self):
    return smart_unicode(self.email)

for python 2

def __str__(self):
        return smart_unicode(self.email)

所以完整的代码应该是

class signup(models.Model):
    first_name=models.CharField(max_length=12,null=False,blank=False)
    last_name=models.CharField(max_length=12,null=False,blank=False)
    email=models.EmailField(max_length=60,null=False,blank=False)
    timestamp=models.DateTimeField(auto_now_add=True,auto_now=False)
    updated=models.DateTimeField(auto_now_add=False,auto_now=True)


    def __str__(self):
        return smart_unicode(self.email)

答案 1 :(得分:0)

我遇到同样的问题然后我意识到我的最后一个块的缩进是不正确的。

只要看看你粘贴在这里的代码就会显示相同的内容,只需给“def unicode (自我):”一个标签或4个空格,并且不要改变任何东西,因为它会起作用我是当然:它起作用了我

它应该在课堂上然后才能正常工作:

from django.db import models
from django.utils.encoding import smart_unicode
# Create your models here.
class signup(models.Model):
    first_name=models.CharField(max_length=12,null=False,blank=False)
    last_name=models.CharField(max_length=12,null=False,blank=False)
    email=models.EmailField(max_length=60,null=False,blank=False)
    timestamp=models.DateTimeField(auto_now_add=True,auto_now=False)
    updated=models.DateTimeField(auto_now_add=False,auto_now=True)

    def __unicode__(self):
        return smart_unicode(self.email)

因为此方法def“ unicode ”属于类注册,并且当您将“def unicode ”置于零缩进块时,它将失去与注册类的关系并变为和独立的方法,因此从admin部分返回类作为对象调用此注册类。但是当你在第一个缩进级别的类注册的屋顶下放置“def unicode ”方法时。它属于注册并返回 unicode ,字符为电子邮件。

答案 2 :(得分:0)

这是针对2.7以上的python的解决方案

.MODEL SMALL
.STACK 100H
.DATA

MAIN PROC 

    MOV BL,65
    MOV CL,26


PRINT:

    MOV AH,2
    MOV DL,BL
    INC BL
    DEC CL
    INT 21H


    MOV DL,0DH
    INT 21H
    MOV DL,0AH
    INT 21H

 JNZ PRINT

  MOV AH,4CH
  INT 21H

MAIN ENDP
END MAIN