【问题标题】:Django, UserProfile inheritance nightmare?Django,UserProfile继承噩梦?
【发布时间】:2012-06-26 19:14:50
【问题描述】:

我同时使用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 中查看学生时,我都会收到此错误:

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
)
;

我很困惑..有人可以给我提示吗??

【问题讨论】:

    标签: sql django django-models django-admin django-registration


    【解决方案1】:

    sqlall 仅告诉您发送的 SQL,如果您是第一次运行 syncdb。它确实为您提供数据库的实际状态。您必须实际运行syncdb 才能创建表。此外,如果任何表已经存在,syncdb不会对表进行任何更改;它只创建表,从不改变它们。

    如果您需要更改表,您要么必须在数据库上手动运行 SQL,要么使用 South 之类的东西进行迁移。

    【讨论】:

    • 与sqlite3无关。这些是在 Django 内部做出的设计决策,背后有充分的理由。
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 2020-03-14
    • 2010-11-13
    • 2010-12-22
    • 1970-01-01
    相关资源
    最近更新 更多