Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Using Databases in Python Gettin' CRUD-y With It CRUD: Search Function

Vidhya Sagar
Vidhya Sagar
1,568 Points

Lost:(

What am i doing Wrong ? Create a function named search_challenges that takes two arguments, name and language. Return all Challenges where the name field contains name argument and the language field is equal to the language argument. Use == for equality. You don't need boolean and or binary & for this, just put both conditions in your where().

crud.py
from models import Challenge


def create_challenge(name, language, steps=1):
    Challenge.create(name=name,
                     language=language,
                     steps=steps)

def search_challenges(arg1,arg2):
    b=Challenge.select()
    return b.where(Challenge.name==arg1,Challenge.language==arg2)

3 Answers

Brian Jensen
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree seal-36
Brian Jensen
Treehouse Staff
from models import Challenge

def create_challenge(name, language, steps=1):
    Challenge.create(name=name,
                     language=language,
                     steps=steps)


def search_challenges(name, language):
    return Challenge.select().where(
        Challenge.name.contains(name),
        Challenge.language==language
    )
Vidhya Sagar
Vidhya Sagar
1,568 Points

Thanks for your answer ,worked like a charm .But why are you using contains for name ,but not in language.

Jennifer Nordell
seal-mask
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Vidhya Sagar glad to see Brian could help you find the solution! But the answer to your question lies in the instructions of the challenge. Take a look:

Return all Challenges where the name field contains name argument and the language field is equal to the language argument.

This means that the Challenge it's looking for only has to contain the name. For example, you could search for CRUD and it would return any CRUD challenges in that language, such as CRUD 1, CRUD 2, CRUD 7 etc.

Hope this helps! :sparkles:

edited for additional note

As a side note, the language Python, Ruby, PHP etc is generally going to be more exclusive. While different versions of these languages may be available at any given time, we generally refer to the language in more generic terms. For example, it's easier to say I'm learning Python than say I'm learning Python 3.5.