Django:与用户表的外键关系不验证

Gau*_*tam 11 python django django-models django-admin

考虑以下django模型

from django.db import models                                                                                                                             
from django.contrib import auth
class Topic(models.Model):
   user = models.ForeignKey('auth.models.User')                                                                                                          
   name = models.CharField(max_length = NameMaxLength , unique = True)
   version_number = models.IntegerField(default = 0)
   created_at = models.DateTimeField(auto_now_add  = True)
   modified_at = models.DateTimeField(auto_now = True)
   update_frequency = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

即使在安装auth_user表之后,此模型也不会验证.

In [3]: auth.models.User.objects.all()
Out[3]: [<User: admin>]
Run Code Online (Sandbox Code Playgroud)

上面的语句来自django-admin shell

$ python manage.py syncdb
Error: One or more models did not validate:
topic: 'user' has a relation with model auth.models.User, which has either not
been installed or is abstract.
Run Code Online (Sandbox Code Playgroud)

我在ubuntu 11.04上使用django v1.0.4和pinax 0.7.2,带有sqlite3数据库

以下问题没有多大帮助:

Elf*_*erg 32

from django.db import models                                                                                                                             
from django.contrib.auth.models import User

class Topic(models.Model):
    user = models.ForeignKey(User) 
Run Code Online (Sandbox Code Playgroud)

'auth.User'本来也会奏效的.它不是Python的库语法,而是Django ORM的"app.model"语法.但是,如果您正在拼命尝试解决循环依赖,那么您应该只将模型作为字符串传递.如果你有一个循环依赖,你的代码是有效的.


Abd*_*afi 7

即使我遇到同样的问题,

错误消息很明确:您尚未安装用户模型.

Add "django.contrib.auth" to INSTALLED_APPS in your settings.py.
Run Code Online (Sandbox Code Playgroud)

那就是..希望它会解决这个问题,对我来说很好.