空の値を整数フィールドとして格納する方法

ナットシップ:

私は同様のスレッドをすべて見て、ドキュメントを読み、IntegerFielddbのよう空の値を格納するために多くの組み合わせを試しましたが、毎回失敗しました。

MySQLを使用しています。

models.pyage=models.IntegerField()フィールドを定義します。csvファイルからdbを入力しましたが、一部のセルに値がありません。Django docsは言う:

Field.null

If True, Django will store empty values as NULL in the database. Default is False.
Note that empty string values will always get stored as empty strings, not as NULL. 

私が使用しIntegerFieldているので、空の文字列(csvからの空のセル)をNULLdbのように格納したいと思います。したがって、私は(考えて)フィールドに追加するnull=True必要がありageます。実際、私はこれ以上のことを試しました:

age=models.IntegerField()
age=models.IntegerField(null=True)
age=models.IntegerField(null=True, blank=True)
age=models.IntegerField(null=True, blank=True, default=None)

空の文字列をdbに挿入するたびに

ValueError: invalid literal for int() with base 10: ''

他に何ができると思いますか?

バーハンハリド:

文字列は整数ではありません。空白文字列はNoneorではありませんNULLあなたがする必要があるのは、フィールドが空白であるインスタンスをキャッチして、それをにキャストすることNoneです。

foo = "something" # "something" is coming from your CSV file

try:
   val = int(foo)
except ValueError:
   # foo is something that cannot be converted to
   # a number. It could be an empty string, or a
   # string like 'hello'
   # provide a default value
   val = None

# Now use val to insert into the database
f = MyModel()
f.age = val
f.save()

blank厳密にはフロントエンドの検証用です。データベース側には何の影響もありません。

これはとは異なることに注意してくださいnullnull純粋にデータベースblank関連ですが、検証関連です。フィールドにがある場合blank=True、フォームの検証では空の値を入力できます。フィールドにがある場合blank=False、そのフィールドは必須です。

null 一方、データベースと関係があります:

Trueの場合、Djangoは空の値をNULLとしてデータベースに格納します。デフォルトはFalseです。

IntegerFieldあなたが渡すときに、整数に変換することができます値を必要と空白文字列、それはそれをキャストすることはできませんし、例外が発生します。代わりに、あなたがを渡してNone、あなたが持っているage = models.IntegerField(null=True)場合、それを正しく保存することを知っています。

要約する:

  • age = models.IntegerField()

    フィールドは必須であり、有効な整数値が必要です。これは受け入れられずNone、データベースにnull値はありません。有効な値は-2147483648〜2147483647です

  • age = models.IntegerField(null=True)

    フィールドは必須です(フォーム検証)。フィールドにNoneが含まれている場合、NULLデータベースで変換されます。

  • age = models.IntegerField(blank=True, null=True)

    フィールドは必須ではありません(フォーム検証)。フィールドがに渡されるとNone、次のように変換されますNULL

  • age = models.IntegerField(blank=True)

    フィールドは必須ではありませんが(フォーム検証)、データベースはnullを受け入れないため、有効な整数値を渡す必要があります。通常、ここでは、デフォルト値を指定するdefault=0か、ormに値を送信する前に検証を行います。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

データベースの空のフィールドにnull値(NA)を格納する方法は?

分類Dev

入力フィールドの値を取得して配列に格納する方法

分類Dev

数値文字列をCの配列の個別の整数としてファイルに格納する方法

分類Dev

MongoDBフィールドの値を変数に格納する方法についてのヘルプが必要

分類Dev

Elasticsearch:フィールドに値の範囲を格納する

分類Dev

動的フォームフィールドを角度のある配列として格納する

分類Dev

spring-data-cassandra、List <Integer>をフィールドとして格納するCassandra

分類Dev

spring-data-cassandra、List <Integer>をフィールドとして格納するCassandra

分類Dev

JavaでEnumの方法で定数として整数値を格納する

分類Dev

空の値を格納するモルフィア

分類Dev

JPA:整数のリストを1つのフィールドに格納する

分類Dev

JavaでJSON配列の特定のフィールドを抽出して文字列に格納する方法

分類Dev

Varchar(max)として格納されているXMLフィールドから複数の値を取得します

分類Dev

フィールドを分割して新しいフィールドに格納するためのLogStashRuby

分類Dev

Codeigniterでfind_in_set()関数を使用して、コンマ区切りの値として格納されていたデータベースフィールドから複数の値を検索する方法

分類Dev

solrj:インデックスの複数値フィールドを介してList <POJO>を格納および取得する方法

分類Dev

SQLデータベースの単一のフィールドに複数の値を格納する方法は?

分類Dev

1つの入力フィールドを使用して2つの値を格納します

分類Dev

フィールドに複数の値を格納するための最良の方法

分類Dev

DetailsView InsertInterfaceのフィールドに別の制御値を格納する

分類Dev

Javaコードを使用して1つのオブジェクトを使用して、ArrayListに3つのフィールドを格納する方法

分類Dev

シェル変数に格納されている行から空のフィールドを削除または削除します

分類Dev

値を整数とvarcharとして格納するPostgreSql

分類Dev

Swiftでビットフィールドを使用して1ビットを超える値を格納する方法

分類Dev

日時フィールドにhh:mmのみを格納する方法は?

分類Dev

レールを使用して値の配列をCookieに格納する方法は?

分類Dev

整数として表示されるように格納されたathenaのdouble値を取得する方法

分類Dev

オブジェクトをフィールドに格納されているクラスと比較します

分類Dev

デコードされたJSONフィールドはnil値のみを提供し、変数に格納することはできません

Related 関連記事

  1. 1

    データベースの空のフィールドにnull値(NA)を格納する方法は?

  2. 2

    入力フィールドの値を取得して配列に格納する方法

  3. 3

    数値文字列をCの配列の個別の整数としてファイルに格納する方法

  4. 4

    MongoDBフィールドの値を変数に格納する方法についてのヘルプが必要

  5. 5

    Elasticsearch:フィールドに値の範囲を格納する

  6. 6

    動的フォームフィールドを角度のある配列として格納する

  7. 7

    spring-data-cassandra、List <Integer>をフィールドとして格納するCassandra

  8. 8

    spring-data-cassandra、List <Integer>をフィールドとして格納するCassandra

  9. 9

    JavaでEnumの方法で定数として整数値を格納する

  10. 10

    空の値を格納するモルフィア

  11. 11

    JPA:整数のリストを1つのフィールドに格納する

  12. 12

    JavaでJSON配列の特定のフィールドを抽出して文字列に格納する方法

  13. 13

    Varchar(max)として格納されているXMLフィールドから複数の値を取得します

  14. 14

    フィールドを分割して新しいフィールドに格納するためのLogStashRuby

  15. 15

    Codeigniterでfind_in_set()関数を使用して、コンマ区切りの値として格納されていたデータベースフィールドから複数の値を検索する方法

  16. 16

    solrj:インデックスの複数値フィールドを介してList <POJO>を格納および取得する方法

  17. 17

    SQLデータベースの単一のフィールドに複数の値を格納する方法は?

  18. 18

    1つの入力フィールドを使用して2つの値を格納します

  19. 19

    フィールドに複数の値を格納するための最良の方法

  20. 20

    DetailsView InsertInterfaceのフィールドに別の制御値を格納する

  21. 21

    Javaコードを使用して1つのオブジェクトを使用して、ArrayListに3つのフィールドを格納する方法

  22. 22

    シェル変数に格納されている行から空のフィールドを削除または削除します

  23. 23

    値を整数とvarcharとして格納するPostgreSql

  24. 24

    Swiftでビットフィールドを使用して1ビットを超える値を格納する方法

  25. 25

    日時フィールドにhh:mmのみを格納する方法は?

  26. 26

    レールを使用して値の配列をCookieに格納する方法は?

  27. 27

    整数として表示されるように格納されたathenaのdouble値を取得する方法

  28. 28

    オブジェクトをフィールドに格納されているクラスと比較します

  29. 29

    デコードされたJSONフィールドはnil値のみを提供し、変数に格納することはできません

ホットタグ

アーカイブ