2017-12-16 36 views
0

カスタム認証モデルを使用して基本的なブログを設定しようとしています。私は働くために単純なフォームを取得しようとしていますが、何とか私はそれを動作させることができません。何が原因でエラーが発生するのか分かりません。これは新鮮なアプリで、私が取り組んでいる新鮮なプロジェクトです。ValueError:関連モデル 'settings.AUTH_USER_MODEL'がまだロードされていないため、 'author'のフォームフィールドをまだ作成できません。

私はドキュメントから参照しようとしましたが、間違っていることがわかりません。このエラーを修正するにはどうすればよいですか?事前のおかげで

ドキュメント: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) 

答えて

1

あなたはsettings.AUTH_USER_MODELを使用する必要があり、文字列ではありません'settings.AUTH_USER_MODEL'

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

はい - 私はそれをチェックアウトして動作します。ここで助けてくれてありがとう! – smishra

関連する問題