0

と の両方django-userenadjango-facebookメインの登録アプリとして使用しています。

両方から自分のものを継承しましょうUserProlfile

from userena.models import UserenaBaseProfile
from django_facebook.models import FacebookProfileModel


class UserProfile(UserenaBaseProfile , FacebookProfileModel):
    user = models.OneToOneField(User, unique=True, verbose_name=_('user'), related_name='user_profile')
    department     = models.ForeignKey('Department' , null = True , blank = True , related_name=_('user'))
    name           = models.CharField(max_length = 100)
    birthday       = models.DateField()

    def __unicode__(self):
        return self.name

class Student(UserProfile):
    courses = models.ManyToManyField(Course , null = True, blank = True, related_name = _('student'))

今、Django Admin 内で Student を見に行きたいときはいつでも、次のエラーが発生します。

Exception Value: No such column: profiles_userprofile.about_me

しかし、それは存在します!! これは次の出力です./manage.py sqlall profiles

BEGIN;
CREATE TABLE "profiles_userprofile" (
    "id" integer NOT NULL PRIMARY KEY,
    "mugshot" varchar(100) NOT NULL,
    "privacy" varchar(15) NOT NULL,

    "about_me" text, ## Her it is !!!

    "facebook_id" bigint UNIQUE,
    "access_token" text NOT NULL,
    "facebook_name" varchar(255) NOT NULL,
    "facebook_profile_url" text NOT NULL,
    "website_url" text NOT NULL,
    "blog_url" text NOT NULL,
    "image" varchar(255),
    "date_of_birth" date,
    "gender" varchar(1),
    "raw_data" text NOT NULL,
    "user_id" integer NOT NULL UNIQUE REFERENCES "auth_user" ("id"),
    "department_id" integer,
    "name" varchar(100) NOT NULL,
    "birthday" date NOT NULL
)
;

私はとても混乱しています..誰か私にヒントを教えてもらえますか??

4

1 に答える 1

4

sqlall初めて実行した場合に送信されるSQL のみを通知しますsyncdb。データベースの実際の状態はわかりません。syncdbテーブルを作成するには、実際に実行する必要があります。さらに、いずれかのテーブルが既に存在する場合、 はテーブルに変更を加えsyncdbません。テーブルを作成するだけで、決して変更しません。

テーブルを変更する必要がある場合は、データベースで SQL を手動で実行するか、Southなどを使用して移行を行う必要があります。

于 2012-06-25T14:32:48.480 に答える