次のプロジェクトの作成を開始しています。最初に拡張ユーザーを作成しています。syncdb を実行すると、groups と user_permissions (UserProfile モデルと User モデル) の 2 つのテーブルが作成されることに気付きました。
これは Django 1.5 の新しいデフォルト モデルですか? UserProfile モデルのグループと user_permissions テーブルを作成しないようにすることはできますか?
次のプロジェクトの作成を開始しています。最初に拡張ユーザーを作成しています。syncdb を実行すると、groups と user_permissions (UserProfile モデルと User モデル) の 2 つのテーブルが作成されることに気付きました。
これは Django 1.5 の新しいデフォルト モデルですか? UserProfile モデルのグループと user_permissions テーブルを作成しないようにすることはできますか?
2 つのテストの後、UserProfile モデルが User モデルと同じようにテーブルを作成する理由がわかりました。
//When I create UserProfile model I extend it by AbstractUser.
//Which results on creating tables the same with User model.
//So be aware when you use User model class, expect it will create multiple tables
class UserProfile(AbstractUser):
street = models.CharField(max_length=255)
city = models.CharField(max_length=30)
state = models.CharField(max_length=12)
zip = models.CharField(max_length=10)
phone = models.CharField(max_length=15)
cell = models.CharField(max_length=15)
拡張モデルを変更します。
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
street = models.CharField(max_length=255)
city = models.CharField(max_length=30)
state = models.CharField(max_length=12)
zip = models.CharField(max_length=10)
phone = models.CharField(max_length=15)
cell = models.CharField(max_length=15)