You're right the docs don't match the advice I gave around Displayable. Reading that, I took a much closer look at why subclassing Displayable is a strict requirement for a model being searchable, and I don't think that needs to be the case.
I've made the following change which means that the example in the docs and the code original posted in this thread should work: https://github.com/stephenmcd/mezzanine/commit/cfc47424a09b51a92fc44eeca3af0ea58ff8ddf9 On Wed, Oct 29, 2014 at 2:03 AM, Josh Cartmell <[email protected]> wrote: > Hey Steve, some of the confusion might come from the docs. The last > example here is almost identical to what Ernesto has done (i.e. > search_fields specified on a non Displayable model): > https://mezzanine.jupo.org/docs/search-engine.html#search-api > > Are the docs wrong in that instance, or is something else at play? > > On Mon, Oct 27, 2014 at 4:21 PM, Ernesto Palafox < > [email protected]> wrote: > >> Thanks for your advice Stephen im trying to make a query but i get an >> error: >> >> FieldError: Cannot resolve keyword u'name' into field. Choices are: >> _meta_title, _order, children, content_model, created, description, >> expiry_date, form, gallery, gen_description, homepage, id, in_menus, >> in_sitemap, keywords, keywords_string, link, login_required, galeria, >> pageimage, parent, publish_date, richtextpage, short_url, site, slide, >> slug, status, title, titles, updated >> >> Its like my searchable fields arent recognized. How can i solve this? >> >> Thanks! >> >> El lunes, 27 de octubre de 2014 13:45:17 UTC-6, Stephen McDonald escribió: >>> >>> The model you want searched needs to subclass Displayable - your Galeria >>> model will do that, since it subclasses Page, which subclasses Displayable, >>> but your Item model does not. >>> >>> You need to stop and think about what a search result will look like and >>> actually link to, which is the main idea around search being tied to the >>> Displayable model - Displayable provides a title and url, which search >>> results make use of. >>> >>> You might end up having your Item descriptions somehow feed into a >>> searchable field on your Galeria model, and have it remain the thing that >>> is searched and displayed as a distinct search result. Alternatively, it >>> might be more suitable to make the Item mode subclass Displayable, with >>> each Item having its own title (which would make your "name" field >>> redundant) and url. Perhaps the url field on the Item model isn't strictly >>> necessary, and you'll need to populate it with the parent Galeria >>> instance's url somehow. >>> >>> You'll need to work out which approach best suits your case, and either >>> way you'll probably need to implement some functionality in one of the >>> model's "save" methods in order to populate some data in the other. >>> >>> Good luck! >>> >>> On Tue, Oct 28, 2014 at 5:37 AM, Ernesto Palafox <[email protected]> >>> wrote: >>> >>>> Hi all, im new to mezzanine and I think its awesome. >>>> >>>> I am trying to follow the documentation http://mezzanine.jupo.org/docs/ >>>> search-engine.html to made searchable my custon contentype >>>> >>>> My models.py looks more or less like this: >>>> >>>> >>>> class Galeria(Page): >>>> pass >>>> class Item(models.Model): >>>> >>>> gallery = models.ForeignKey(Galeria, related_name="gallery") >>>> name = models.CharField(max_length=30) >>>> description_1 = RichTextField(blank=True,null=True) >>>> objects = SearchableManager() >>>> search_fields = ("name", "description_1" ) >>>> >>>> >>>> I also have {%search_form "galeria.Item" %}. >>>> >>>> >>>> However, when i try the search, it returns me nothing. ¿What am i doing >>>> wrong? >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Mezzanine Users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Stephen McDonald >>> http://jupo.org >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Mezzanine Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "Mezzanine Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Stephen McDonald http://jupo.org -- You received this message because you are subscribed to the Google Groups "Mezzanine Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
