【问题标题】:ValueError: Cannot create form field for 'author' yet, because its related model 'settings.AUTH_USER_MODEL' has not been loaded yetValueError:无法为“作者”创建表单字段,因为尚未加载其相关模型“settings.AUTH_USER_MODEL”
【发布时间】:2017-12-16 16:14:28
【问题描述】:

我正在尝试使用自定义身份验证模型建立一个基本博客。我试图让一个简单的表格工作,但不知何故我无法让它工作。我不确定是什么导致了错误。这是一个全新的应用程序,也是我正在开发的一个全新项目。

我试图从文档中引用,但我不确定我做错了什么。我该如何解决这个错误?提前致谢

文档:https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#changing-to-a-custom-user-model-mid-project

类似问题:Cannot create form field for 'created_by' yet, because its related model 'users.User' has not been loaded yet

我当前的代码

models.py

class User(AbstractUser):
  pass

class Post(models.Model):
   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)

forms.py:

from blog.models import User

class PostForm(forms.ModelForm):
image = forms.CharField(
    widget=forms.FileInput(attrs={'class': 'form-control'}),required=False)


class Meta():
    model = Post
    fields = ('author','title', 'text','image')
    widgets = {
        'title': forms.TextInput(attrs={'class': 'textinputclass'}),
         }

views.py

from blog.forms import PostForm, CommentForm

class CreatePostView(LoginRequiredMixin,CreateView):
  ...
  form_class = PostForm
  model = Post
  def form_valid(self,form):
    if self.request.POST:
        post = form.save()
        return HttpResponseRedirect('/')

settings.py:

AUTH_USER_MODEL = 'blog.User'

admin.py:

from .models import User
from django.contrib.auth.admin import UserAdmin
admin.site.register(User,UserAdmin)

【问题讨论】:

    标签: python django custom-authentication


    【解决方案1】:

    你应该使用settings.AUTH_USER_MODEL,而不是字符串'settings.AUTH_USER_MODEL'

    class Post(models.Model):
        author = models.ForeignKey(settings.AUTH_USER_MODEL)
    

    【讨论】:

    • 是的 - 我检查了它并且有效。感谢您在这里提供帮助!
    猜你喜欢
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2023-03-17
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多