2011-06-20 11 views
1

私はいくつかのモデルを書いています。具体的には、ユーザーのポストセーブフックによって作成されるUserProfileモデルです。フィールドwith null = Djangoでnullを受け付けないTrue

ここでは奇妙なことが起こっています。テストスイートは1台のコンピュータ上を通過し、別のコンピュータで失敗します。 profile_userprofile.organization_id may not be NULL、まだここに私のモデルである::エラーメッセージがある

class UserProfile(models.Model): 
    'Profile object for a user' 
    user = models.ForeignKey(User, unique=True) 
    organization = models.ForeignKey(
     'organization.Organization', 
     related_name='volunteers', 
     null=True, 
    ) 

は明らかに、組織がnull値を許可する必要がありますが、それはしていません。何がここで間違っているかについての任意のアイデア?シェルからUser.objects.create()を呼び出すときも同じことが起こります。データベースが第二のマシンでの同期にないよう

(ああ、ここにあるフック)

@receiver(models.signals.post_save, sender=User) 
def user_post_save(sender, instance, **kwargs): 
    'create a userprofile object for a user if one does not exist' 
    UserProfile.objects.get_or_create(user=instance) 
+0

「ヌル」を「真」に変更した後にデータベースを同期しましたか? –

+0

はい、テストスイートは毎回メモリ内のデータベースを作成し、削除します。 –

+0

(テストスイートの実行時に)どのような種類のデータベースを使用していますか? –

答えて

0

移行が見つかりませんでした。うわー!

0

が鳴ります。それを落としてsyncdbを再実行してください。

+0

完了しても、問題は解決しません。 –

0

おそらくあなたが探しているのはblank=Trueです。

+0

いいえ、質問のコメントを参照してください。それを修正しないでください。 –

+0

あなたは 'blank = True'だけを使うことを意味しますか? –

関連する問題