0

Django モデルの外部キー フィールドのデフォルト値を 0 に設定しました。しかし、IntigrityError が発生しています (1048、「Column 'country_id' cannot be null」)

こんにちは、私は次のようなコードを持っています:

class TestModel(models):
    name = models.CharField(max_length=255, blank=True)
    reg_from = models.CharField(max_length=255, blank=True)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True, null=True)
    country = models.ForeignKey(Country, blank=True, default=0)

何らかの理由で、TestModel の保存中に国情報を提供できません。後ほど更新したいと思います。

クリッシュ

4

4 に答える 4

1

Country モデルに を持つオブジェクトがないため、エラーが発生していますPK = 0

フィールドを に設定したくない場合は、次のようnullに Country オブジェクトを作成するだけです。pk=0Country.objects.create(name='No Country', pk=0)

ただし、フィールドを に設定してnull持つdefault=0と、よりクリーンなソリューションになる可能性があります。

于 2012-12-15T16:11:21.120 に答える
0

0 の代わりに None を試してください。0 は整数です。いずれにせよ機能しないはずです。

于 2012-12-15T05:36:00.383 に答える
0

迅速かつ汚い解決策として、フィールドを null にしました。

于 2012-12-28T04:50:34.187 に答える
-1

定義を次のように変更します。

country = models.ForeignKey(Country, blank=True, null=True, default=0)

このnull=True属性は、DB の列に NULL パラメータを設定countryしますが、この列に値を設定する必要はありません。

default=0デフォルト値が null になるため、これも必要ありません。

于 2012-12-15T05:04:56.863 に答える