通常の文字列を使用してx.len()を実行して長さを取得できることは知っていますが、DjangoモデルのTextFieldはそれを望んでいないようです。モデルフィールドリファレンスを見つけて調べました。Djangoでテキストフィールドの長さを取得するにはどうすればよいですか?ヘルプと例をいただければ幸いです。
Ross Walker
質問する
6463 次
2 に答える
5
Djangoモデルインスタンスは、実際にはフィールドをフィールドクラスとして公開しません。データベースから読み込まれると、それらは単に関連するデータ型のインスタンスになります。したがって、CharFieldとTextFieldの両方が単純な文字列としてアクセスされます。これは、他のPython文字列と同様に、len(x)
それらを呼び出すことができることを意味します。これは組み込み関数であり、文字列メソッドではないことに注意してください。だからlen(myinstance.mytextfield)
、len(myinstance.mycharfield)
うまくいくでしょう。
于 2012-08-13T15:41:48.690 に答える
3
試してみてくださいlen(obj.your_field)
。結果は対応するデータ型のオブジェクトになるため、これで必要なものが得られます(TextFieldフィールドとCharFieldフィールドの両方が文字列になります)。ドキュメントに基づいた簡単な例を次に示します。
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
person = Person.objects.get(pk=1)
len(person.first_name)
また、何らかの方法で追加しない限り、Pythonには'string'.len()メソッドはありません。
于 2012-08-13T15:54:29.660 に答える