0

私は洞察力のある人が助けてくれることを願っている問題を抱えています。私の最初のDjangoプロジェクトはほぼ完了しており、Herokuを介したデプロイを見越して、現在Postgresデータベースに移行しています。python manage.py syncdbを実行したときにこれが発生するまで、プロセスはかなりスムーズに進んでいました。

django.db.utils.DatabaseError: relation “report_userprofile” does not exist
LINE 1: INSERT INTO “report_userprofile” (“user_id”, “first_name”, “…

どうやら、それはUserProfileモデルのDBテーブルを作成しませんでした。サーバーを実行しようとすると、次の例外が発生します。

Exception Type: DoesNotExist at /accounts/login/
Exception Value: Site matching query does not exist.

私がプロジェクトに使用している追加のアプリの中には、django-profilesがあります。これは、明らかに一般的な設定でいくつかの問題がありました。「MissingManual」サイト(http://birdhouse.org/blog/2009/06/27/django-profiles/)はこれらの解決に役立ちましたが、現在の問題につながっている可能性があります。

そこで推奨されているsignals.post_save.connect(create_profile、sender = User)を使用しています。私は何がうまくいかなかったのかを調査していて、Googleグループでこの投稿に出くわし、「ユーザーでpost_saveシグナルを使用している場合、競合状態になるため、それを行うことはできません」と答えました。これが問題の原因である可能性があるかどうか、そして明らかに、それを解決してこれらのテーブルを新しいデータベースに入れて機能させるために何が最善であるか疑問に思います。

この問題を解決する方法についての洞察をいただければ幸いです。

これは、問題を引き起こしている可能性のあるデータベースモデルです。

class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True, related_name="profile")
first_name = models.CharField(max_length=25)
last_name = models.CharField(max_length=35)
email = models.EmailField()
birth_date = models.DateField(blank=True, null=True)
city = models.CharField(max_length=25)
state = models.CharField(max_length=20)
zip_code = models.CharField(max_length=10)
profile_pic = models.ImageField(upload_to='profilepictures', blank=True)

def __unicode__(self):
    return " %s" % (self.user)

def get_absolute_url(self):
    return ('profiles_profile_detail', (), { 'username': self.user.username })
get_absolute_url = models.permalink(get_absolute_url)
signals.post_save.connect(create_profile, sender=User)
4

1 に答える 1

1

ここで何かが疑わしいようです:

INSERT INTO “report_userprofile” (“user_id”, “first_name”, “…

これら 2 つのフィールドは、カスタム プロファイル モデルのフィールドではなく、ネイティブ ユーザー モデルのフィールドです。これらのフィールドを Profile テーブルに挿入しようとするのはなぜでしょうか?

ここに表示されていないコードはありますか?

周りを見回すと、プロファイル レコードを自動的に作成するための興味深い代替アプローチがいくつか見つかります。

http://djangosnippets.org/snippets/500/ http://www.turnkeylinux.org/blog/django-profile

しかし、あなたが使用している手法 (Birdhouse にリストされています) は、私が構築したすべての Django サイトでうまく機能していることを知っているので、特に疑いはありません。

于 2012-07-06T06:46:56.897 に答える