Django auth-Modell-Fehler: der name "User" ist nicht definiert
1. Die Fehler-codes:
NameError: name 'User' ist nicht definiert
>>> myproject ME$ python manage.py shell
NameError: name 'User' is not defined
myproject ME$ python manage.py shell
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', '[email protected]', 'johnpassword')
>>> user.is_staff = True
>>> user.save()
>>> User.objects.all()
[<User: superuser>, <User: john>]
>>> from django.db import models
>>> from django.contrib.auth.models import User
>>>
>>>
>>> from django.conf import settings
>>> user = models.ForeignKey(settings.AUTH_USER_MODEL)
>>> User.objects.all()
[<User: superuser>, <User: john>]
>>> user.save()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'ForeignKey' object has no attribute 'save'
>>> from django.conf import settings
Haben Sie Anregungen?
Was kann ich tun?
Gibt es eine Möglichkeit zu überprüfen, ob der Benutzer auth-Modell importiert wurde? Wenn ja, was kann ich tun, falls es nicht richtig importiert?
Gibt es ein problem mit meiner Lesezeichen-app?
2. Meine models.py:
from django.db import models
class Bookmark(models.Model):
author = models.ForeignKey(User)
title = models.CharField(max_length=200, blank=True, default="")
url = models.URLField()
timestamp = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return "%s by %s" % (self.url, self.author.username)
class Tag(models.Model):
bookmarks = models.ManyToManyField(Bookmark)
slug = models.CharField(max_length=50, unique=True)
def __unicode__(self):
return self.slug
InformationsquelleAutor Thankyou | 2014-08-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie verweisen
User
hier:author = models.ForeignKey(User)
, aber vergessen zu importierenUser
in Ihrem models.pyDiese auf der Spitze Ihres
models.py
DateiEDIT:
Ein alternativer (neuer) Weg von den Import-user-Modell für konfigurierbare Benutzer-Modelle:
Der konfigurierte Benutzer-Modell zurückgegeben werden würde, basierend auf der Einstellung
AUTH_USER_MODEL
InformationsquelleAutor karthikr