我想创建新模型,例如:
user_name = models.ForeignKey(u"Username", User),
但是当我尝试syncdb时,我收到此错误消息:
“AttributeError:'unicode'对象没有属性'_meta'”
当我查看一些教程时,一切似乎与我的模型中的相同,并且从未提及“_meta”的问题。
答案 0 :(得分:34)
更安全的方法是使用设置文件中的AUTH_USER_MODEL
。
示例:
from django.db import models
from django.conf import settings
class Article(models.Model):
headline = models.CharField(max_length=255)
article = models.TextField()
author = models.ForeignKey(settings.AUTH_USER_MODEL)
默认情况下,settings.AUTH_USER_MODEL
引用django.contrib.auth.models.User
,无需您执行任何操作。
此方法的优势即使您未经修改就使用自定义用户模型,您的应用仍将继续有效。
有关如何使用自定义用户模型check out this part of the Django docs
的详细信息答案 1 :(得分:25)
你只想:
from django.contrib.auth.models import User
class MyModel(models.Model):
...
user = models.ForeignKey(User)
...