recherche

Maison  >  Questions et réponses  >  le corps du texte

python - Django -- Cannot resolve keyword 'title_icontains' into field

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<code>from django.shortcuts import render

from django.db.models import Q

from models import Book

from django.shortcuts import render_to_response

from django import forms

from forms import ContactForm

# Create your views here.

 

def search(request):

    query = request.GET.get('q','')

    if query:

        qset=(

            Q(title_icontains=query) |

            Q(authors_first_name_icontains=query) |

            Q(authors_last_name_icontains=query)

            )

        results=Book.objects.filter(qset).distinct()

    else:

        results=[]

    return render_to_response(r"search.html",{

        "results":results,

        "query":query

        })

 

def contact(request):

    if request.method == 'POST':

        form = ContactForm(request.POST)

    else:

        form=ContactForm()

    return render_to_response('contact.html',{'form':form})

 

 

TOPIC_CHOICES = (

    ('general','General enquiry'),

    ('bug','Bug report'),

    ('suggestion','Suggestion'),

    )

 

class ContactForm(forms.Form):

    topic = forms.ChoiceField(choices=TOPIC_CHOICES)

    message = forms.CharField()

    sender = forms.EmailField(required=False)

</code>

ERROR

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<code>FieldError at /search/

Cannot resolve keyword 'title_icontains' into field. Choices are: authors, id, num_pages, publication_date, publisher, publisher_id, title

Request Method:    GET

Request URL:    http://127.0.0.1:8000/search/?q=authors

Django Version:    1.8.6

Exception Type:    FieldError

Exception Value:   

Cannot resolve keyword 'title_icontains' into field. Choices are: authors, id, num_pages, publication_date, publisher, publisher_id, title

Exception Location:    C:\Python27\lib\site-packages\django-1.8.6-py2.7.egg\django\db\models\sql\query.py in names_to_path, line 1397

Python Executable:    C:\Python27\python.exe

Python Version:    2.7.11

Python Path:   

['D:\\Users\\rongweiwei799\\mysite',

 'C:\\Python27\\lib\\site-packages\\python_docx-0.8.5-py2.7.egg',

 'C:\\Python27\\lib\\site-packages\\selenium-2.53.1-py2.7.egg',

 'C:\\Python27\\lib\\site-packages\\django-1.8.6-py2.7.egg',

 'C:\\Python27\\python27.zip',

 'C:\\Python27\\DLLs',

 'C:\\Python27\\lib',

 'C:\\Python27\\lib\\plat-win',

 'C:\\Python27\\lib\\lib-tk',

 'C:\\Python27',

 'C:\\Python27\\lib\\site-packages']

Server time:    Thu, 5 May 2016 18:25:22 +0800</code>

阿神阿神2820 Il y a quelques jours1199

répondre à tous(2)je répondrai

  • PHP中文网

    PHP中文网2017-04-17 17:44:53

    Allez regarder la rubrique modèles, ça devrait être title__icontains, notez que c'est __, pas _

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:44:53

    icontains est une correspondance floue insensible à la casse. Lors de l'interrogation, utilisez le champ __icontains=value avec deux traits de soulignement au milieu. La bonne réponse est

    .

    répondre
    0
  • Annulerrépondre