2

通常の文字列を使用してx.len()を実行して長さを取得できることは知っていますが、DjangoモデルのTextFieldはそれを望んでいないようです。モデルフィールドリファレンスを見つけて調べました。Djangoでテキストフィールドの長さを取得するにはどうすればよいですか?ヘルプと例をいただければ幸いです。

4

2 に答える 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 に答える