私はいくつかのモデルを書いています。具体的には、ユーザーのポストセーブフックによって作成される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)
「ヌル」を「真」に変更した後にデータベースを同期しましたか? –
はい、テストスイートは毎回メモリ内のデータベースを作成し、削除します。 –
(テストスイートの実行時に)どのような種類のデータベースを使用していますか? –