2016-10-22 8 views
1

私が理解している限り、このCharFieldはデータで満たされていないときはnullを返しますが、代わりにNoneを返します。空のCharField null = Trueが返されます。NoneType Django 1.8

number_of_likes = models.CharField(max_length=1000, blank=False, null=True) 

私にとっての主な問題は、私が以前の値を有罪にしたいとき、私は問題

私はそれをどのように処理するかを
int() argument must be a string, a bytes-like object or a number, not 'NoneType' 

のように並べ替えを取得するのですか?

object.number_of_likes = previus_number_of_likes + 1 
+1

'null'なのではなしVAされていない、Pythonで存在していないのに役立ちますヌル値を表すlue – trinchet

答えて

2

他の人が指摘したように、nullはPythonには存在しません。Noneはヌル値を表す方法です。

オプション1:

number_of_likes = models.IntegerField(default=0) 

オプション2:へのあなたのフィールド定義を変更することはあなたの問題を解決することができ、いくつかの方法がある、と述べたあなたがフィールドを変更したくない場合は、あなたは可能性:

object.number_of_likes = int(object.number_of_likes) + 1 if object.number_of_likes else 1 

希望これは

+0

IntegerFieldは自動的に犯罪を犯しますか?私は人為的にそれを犯す必要があります。ここでBigIntegerFieldを使うのがいいですか? –

+1

IntegerFieldとBigIntegerFieldのいずれも自動的に増加しません。手動で行う必要があります。 IntegerFieldとBigIntegerFieldの唯一の違いは、数値のサイズ – damores

0

ちょうど私がpython manage.py shellを行なったし、

>>> null 

を入力して得たチェックする:

NameError: name 'null' is not defined 

私はNoneがに格納されている場合を除き、nullはないと思いますデータベース。

関連する問題