djangoでのmysqlの大文字と小文字を区別しない検索

ジョエルGマシュー

モデルのフィールド内の部分文字列で大文字と小文字を区別しない検索を実行しようとしています。

私のモデル:

class doctor(models.Model):
    docid = models.AutoField(primary_key=True, unique=True) # Need autoincrement, unique and primary
    name = models.CharField(max_length=35)
    username = models.CharField(max_length=15)
    regid = models.CharField(max_length=15, default="", blank=True)
    photo = models.CharField(
        max_length=35, default="", blank=True)
    email = models.EmailField(default="", blank=True)
    phone = models.CharField(max_length=15)
    qualifications = models.CharField(
        max_length=50, default="", blank=True)
    about = models.CharField(
        max_length=35, default="", blank=True)
    specialities = models.CharField(
        max_length=50, default="", blank=True)
    department = models.CharField(max_length=50, default="ENT", blank=True)
    fees = models.FloatField(default=300.0)
    displayfee = models.IntegerField(default=0, blank=True)
    slotrange = models.CharField(max_length=50, blank=True)
    slotdurn = models.IntegerField(default=10)
    breakrange = models.CharField(
        max_length=50, default="", blank=True)
    slotsleft = models.CharField(
        max_length=50, default="", blank=True)
    def __str__(self):
        return self.name
    def Range(self):
        return self.slotrange
    def listslots(self):
        SlotRange = self.slotrange
        SlotDurn = self.slotdurn
        startime = SlotRange.split('-')[0]
        endtime = SlotRange.split('-')[1]
        sthr, stmin = SplitTimeString(startime)
        enhr, enmin = SplitTimeString(endtime)
        print(stamptoday(sthr, stmin))
        print(stamptoday(enhr, enmin))
        startstamp = stamptoday(sthr, stmin)
        endstamp = stamptoday(enhr, enmin)
        secdurn = SlotDurn*60
        slotlist = []
        for sec in range(startstamp, endstamp, secdurn):
            enttime = sec + secdurn
            myrange = ("%s - %s" % (HumanTime(sec),
                                    HumanTime(enttime)))
            slotlist.append(myrange)
        return slotlist

私のmysqlデータベースのフィールド「name」の下には、nameの値が「Joel」と「JaffyJoel」の2つの行があります。

私がこのように検索を行うとき:

from appointments.models import customer, doctor, appointment
doctor.objects.filter(name__icontains='joel')

出力:

<QuerySet []>

しかし、私がそうするとき:

doctor.objects.filter(name__icontains='Joel')

出力:

<QuerySet [<doctor: Joel>, <doctor: Jaffy Joel>]>

大文字と小文字を区別しない検索が小文字の検索で機能しないのはなぜですか?

ジョエルGマシュー

djangoのドキュメント指摘されているように

MySQLでは、データベーステーブルの「照合」設定により、正確な比較で大文字と小文字が区別されるかどうかが決まります。これはデータベース設定であり、Django設定ではありません。大文字と小文字を区別する比較を使用するようにMySQLテーブルを構成することは可能ですが、いくつかのトレードオフが関係します。これについての詳細は、データベースのドキュメントの照合セクションを参照してください。

私の場合、私はそれを解決しました

from django.db.models import Q,CharField
from django.db.models.functions import Lower
CharField.register_lookup(Lower, "lower")
doctor.objects.filter(Q(name__lower__contains='joel'))

この点に関するヒントは、django-usersメーリングリストのMatthewPavaによって提供されました。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Oracleでの大文字と小文字を区別しない検索

分類Dev

大文字と小文字を区別しない単語の「検索」?

分類Dev

golangでの大文字と小文字を区別しない文字列検索

分類Dev

java:Elasticsearchでの大文字と小文字を区別しない検索

分類Dev

CosmosDB / DocumentDBの配列で大文字と小文字を区別しない検索

分類Dev

djangoを使用したpostgresArrayFieldでの大文字と小文字を区別しない検索

分類Dev

NestJS:PostgreSQLで大文字と小文字を区別しない検索

分類Dev

awkで大文字と小文字を区別しない検索

分類Dev

PigLatinで大文字と小文字を区別しない検索

分類Dev

SQL-文字列の検索中に大文字と小文字を区別しない

分類Dev

大文字と小文字を区別しないArray <AnyObject>の検索文字列

分類Dev

$ regexを使用したMongodbの大文字と小文字を区別しない検索

分類Dev

単語の検索と置換-大文字と小文字を区別しない

分類Dev

Luceneの大文字と小文字を区別する検索と区別しない検索

分類Dev

DataTables大文字と小文字を区別しない検索の問題

分類Dev

検索フィールドの大文字と小文字を区別しない

分類Dev

大文字と小文字を区別しないラベルの検索

分類Dev

配列の大文字と小文字を区別しない音声検索

分類Dev

大文字と小文字を区別しない Javascript 検索の書き方

分類Dev

大文字と小文字を区別しない検索での特殊文字の処理

分類Dev

ファイル内の2つの文字列間で大文字と小文字を区別しない検索

分類Dev

AS3で大文字と小文字を区別しない文字の配列を検索

分類Dev

grailsでの大文字と小文字を区別しないi18n文字列検索

分類Dev

JavaScriptマップのキーと値のペアで大文字と小文字を区別しない検索

分類Dev

bashでの大文字と小文字を区別しないファイル名の検索と取得

分類Dev

Djangoの大文字と小文字を区別する検索

分類Dev

大文字と小文字を区別しない検索

分類Dev

大文字と小文字を区別しない辞書検索?

分類Dev

大文字と小文字を区別しないgitpickaxe検索

Related 関連記事

  1. 1

    Oracleでの大文字と小文字を区別しない検索

  2. 2

    大文字と小文字を区別しない単語の「検索」?

  3. 3

    golangでの大文字と小文字を区別しない文字列検索

  4. 4

    java:Elasticsearchでの大文字と小文字を区別しない検索

  5. 5

    CosmosDB / DocumentDBの配列で大文字と小文字を区別しない検索

  6. 6

    djangoを使用したpostgresArrayFieldでの大文字と小文字を区別しない検索

  7. 7

    NestJS:PostgreSQLで大文字と小文字を区別しない検索

  8. 8

    awkで大文字と小文字を区別しない検索

  9. 9

    PigLatinで大文字と小文字を区別しない検索

  10. 10

    SQL-文字列の検索中に大文字と小文字を区別しない

  11. 11

    大文字と小文字を区別しないArray <AnyObject>の検索文字列

  12. 12

    $ regexを使用したMongodbの大文字と小文字を区別しない検索

  13. 13

    単語の検索と置換-大文字と小文字を区別しない

  14. 14

    Luceneの大文字と小文字を区別する検索と区別しない検索

  15. 15

    DataTables大文字と小文字を区別しない検索の問題

  16. 16

    検索フィールドの大文字と小文字を区別しない

  17. 17

    大文字と小文字を区別しないラベルの検索

  18. 18

    配列の大文字と小文字を区別しない音声検索

  19. 19

    大文字と小文字を区別しない Javascript 検索の書き方

  20. 20

    大文字と小文字を区別しない検索での特殊文字の処理

  21. 21

    ファイル内の2つの文字列間で大文字と小文字を区別しない検索

  22. 22

    AS3で大文字と小文字を区別しない文字の配列を検索

  23. 23

    grailsでの大文字と小文字を区別しないi18n文字列検索

  24. 24

    JavaScriptマップのキーと値のペアで大文字と小文字を区別しない検索

  25. 25

    bashでの大文字と小文字を区別しないファイル名の検索と取得

  26. 26

    Djangoの大文字と小文字を区別する検索

  27. 27

    大文字と小文字を区別しない検索

  28. 28

    大文字と小文字を区別しない辞書検索?

  29. 29

    大文字と小文字を区別しないgitpickaxe検索

ホットタグ

アーカイブ