smi*_*hra 1 python django custom-authentication
我正在尝试使用自定义身份验证模型建立一个基本博客。我试图让一个简单的表格发挥作用,但不知何故我无法使其发挥作用。我不确定是什么导致了错误。这是一个新的应用程序,也是我正在开发的一个新项目。
我尝试参考文档,但我不确定我做错了什么。我该如何修复这个错误?提前致谢
文档: https: //docs.djangoproject.com/en/1.11/topics/auth/customizing/#chang-to-a-custom-user-model-mid-project
类似问题:无法为“created_by”创建表单字段,因为其相关模型“users.User”尚未加载
我当前的代码
模型.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)
Run Code Online (Sandbox Code Playgroud)
形式.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'}),
}
Run Code Online (Sandbox Code Playgroud)
视图.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('/')
Run Code Online (Sandbox Code Playgroud)
设置.py:
AUTH_USER_MODEL = 'blog.User'
Run Code Online (Sandbox Code Playgroud)
管理员.py:
from .models import User
from django.contrib.auth.admin import UserAdmin
admin.site.register(User,UserAdmin)
Run Code Online (Sandbox Code Playgroud)
您应该使用settings.AUTH_USER_MODEL,而不是字符串'settings.AUTH_USER_MODEL':
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3296 次 |
| 最近记录: |