ここでそれについてほとんどのドキュメントがあります: http://docs.djangoproject.com/en/dev/ref/models/fields/#commaseparatedintegerfieldどのように私はCommaSeparatedIntegerFieldをdjangoで使用しますか?
はたぶん誰かが、一例で、ジャンゴでCommaSeparatedIntegerField
を移入する方法を私を見るだろうか?
-thanks。 Djangoのためのソースを見ると
ここでそれについてほとんどのドキュメントがあります: http://docs.djangoproject.com/en/dev/ref/models/fields/#commaseparatedintegerfieldどのように私はCommaSeparatedIntegerFieldをdjangoで使用しますか?
はたぶん誰かが、一例で、ジャンゴでCommaSeparatedIntegerField
を移入する方法を私を見るだろうか?
-thanks。 Djangoのためのソースを見ると
...
class CommaSeparatedIntegerField(CharField):
def formfield(self, **kwargs):
defaults = {
'form_class': forms.RegexField,
'regex': '^[\d,]+$',
'max_length': self.max_length,
'error_messages': {
'invalid': _(u'Enter only digits separated by commas.'),
}
}
defaults.update(kwargs)
return super(CommaSeparatedIntegerField, self).formfield(**defaults)
は、正規表現のバリデータをチェックしてください。あなたが整数とカンマのリストを与える限り、djangoは不平を言うことはありません。
あなたは基本的にはCharFieldですようにそれを定義することができます:私はちょうど私の最新のプロジェクトでCommaSeparatedIntegerFieldを扱っているために起こっ
f = Foo(int_list="1,2,3,4,5")
:
class Foo(models.Model):
int_list = models.CommaSeparatedIntegerField(max_length=200)
をそして、このようにそれを取り込みます。私はMySQLを使用していましたが、コンマで区切られた整数値の文字列を供給するように思えました。 '1,2,3,4,5'。空白のままにしたい場合は、空の文字列を渡します。
CharFieldのように動作し、私のために奇妙な方法で生き残りました。私は "[1、2、3、4、5]"のような値で終わりました。だから注意してください!
私はこのフィールドを追加したいと思いますis depricated in Django 1.9。 Django 1.9以降では、CharField
とvalidators=[validate_comma_separated_integer_list]
を使用する必要があります。バージョンの
作品大きいDjangoの1.9より
ファーストステップ: -インポートこの(新しいバージョンで変更される可能性があり、そのダブルチェック)
from django.core.validators import validate_comma_separated_integer_list
セカンドステップ: -書き込みフィールド
class RestaurantLocation(models.Model):
name = models.CharField(max_length=200)
location = models.CharField(max_length=200,null=True,blank=True)
category = models.CharField(max_length=200,null=True,blank=False)
choices_field = models.CharField(validators=[validate_comma_separated_integer_list],max_length=200, blank=True, null=True,default='')
def __str__(self):
return self.name
注:すでに作成したデータベースに列を追加する場合は、default = ''
を使用することを確認してください。そうしないと、python manage.py migrate
You are trying to add a non-nullable field 'choices_field' to restaurantlocation without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a
null value for this column)
2) Quit, and let me add a default in models.py
Select an option:
コーディングハッピーを実行した後に選択するには、次のオプションになるだろう!
フィールドに対応するmax_lengthにカンマが含まれていますか? – khalid13
はい、それは文字列として含まれています。 –