Python (fields.E301)字段定义与模型的关系';授权用户';,已经换掉了
错误: blog.Post.author:(fields.E301)字段定义了与模型“auth.User”的关系,该模型已被调出。 提示:更新关系以指向“settings.AUTH\u USER\u MODEL” 我知道我需要在settings.AUTH\u USER\u模型中交换AUTH.USER,但由于某些原因,这样做会导致我的博客无法显示。当我尝试从导航栏查看博客时,路由是正确的,但不再有内容。我也无法在Django admin上登录或创建新用户。这些问题是从在“帐户设置”中设置身份验证用户模型开始出现的 blog/models.pyPython (fields.E301)字段定义与模型的关系';授权用户';,已经换掉了,python,django,django-models,Python,Django,Django Models,错误: blog.Post.author:(fields.E301)字段定义了与模型“auth.User”的关系,该模型已被调出。 提示:更新关系以指向“settings.AUTH\u USER\u MODEL” 我知道我需要在settings.AUTH\u USER\u模型中交换AUTH.USER,但由于某些原因,这样做会导致我的博客无法显示。当我尝试从导航栏查看博客时,路由是正确的,但不再有内容。我也无法在Django admin上登录或创建新用户。这些问题是从在“帐户设置”中设置身份验证用
from django.db import models
from django.utils import timezone
from fitness_project import settings
class Post(models.Model):
author = models.ForeignKey('auth.User', related_name='User')
#author = models.ForeignKey(settings.AUTH_USER_MODEL)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
设置.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello',
'blog',
'membership',
'accounts',
'django_forms_bootstrap',
]
AUTH_USER_MODEL = 'accounts.User'
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'accounts.backends.EmailAuth',
)
blog/admin.py
from django.contrib import admin
from .models import Post
admin.site.register(Post)
因为您已经设置了
AUTH\u USER\u MODEL='accounts.USER'
,所以您的模型应该是:
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL)
然而,这是非常困难的。如果您正在尝试这样做,您可能会发现删除数据库、删除迁移,然后重新运行makemigrations
和migrate
是最简单的方法。的答案是正确的,但我对它做了更多的修改
由于您已经从fitness_project import settings导入了-,您还可以指定一个名为User的var,以便下次在模型的字段中使用它
User = settings.AUTH_USER_MODEL
然后,像往常一样,您可以像这样使用用户-
author = models.ForeignKey(User, related_name='User')