2017-10-25 7 views
0

私はかなり新しいdjangoですが、これまではうまくいっていました。私は(基本的にはカスタムユーザーを作成します)、ユーザーにフィールド「アドレス」と「PHONE_NUMBER」を追加しようとしているが、私はこのように、このエラーを得続けるDjangoのユーザーにカスタムフィールドを追加しようとしています

は...

File "C:\Users\will5\Desktop\City\city_info\forms.py", line 5, in <module> 
class UserForm(forms.ModelForm): 
File "C:\Users\will5\AppData\Local\Programs\Python\Python36-32\lib\site- 
packages\django\forms\models.py", line 257, in __new__ 
raise FieldError(message) 
django.core.exceptions.FieldError: Unknown field(s) (phone_number, address) 
specified for User 

これはモデル

です
... 
from django.contrib.auth.models import AbstractUser 

class User(AbstractUser): 
    phone_number = models.IntegerField(default=0) 
    address = models.CharField(max_length=150) 
... 

これは私もこの問題を解決するために、私がしなければならないことを読んで、私の形で

from django.contrib.auth.models import User 
from django import forms 

class UserForm(forms.ModelForm): 
    password = forms.CharField(widget=forms.PasswordInput) 

class Meta: 
    model = User 
    fields = ['username', 'email', 'password', 'address', 'phone_number'] 

ですカスタムユーザーを作成して移行してプロジェクトを再開すると、やりたいことはありません。

答えて

1

問題は、あなたはまだあなたがこれはあなたがAUTH_USER_MODEL = 'yourapp.User'を設定していることを前提とし

from django.contrib.auth import get_user_model 
User = get_user_model() 

from django.contrib.auth.models import User 

を置き換えることによって、それを修正することができ

ユーザーモデルで構築をインポートしているということですあなたの設定。

ドキュメントを読んでいるので、プロジェクトの開始後にカスタムユーザーモデルに切り替えるのは非常に難しいですが、簡単な解決法はありません。プロジェクトを再開できない場合は、モデルをOneToOneFieldでデフォルトのUserに変更してください。

+0

プロジェクトを再開するには、最初に「クラスユーザー」を追加して移行してから、ちょっと参考にしてください –

関連する問題