I hate to be thick but could you explain to me how to load the filters and also how the template should look with the updated function? Solving this will unlock a ton of functionality for my app.
Thanks, Aaron On Aug 29, 2016 12:34 PM, "Asad Jibran Ahmed" <[email protected]> wrote: > No problem. The most probable reason why you're getting the invalid filter > error is because you forgot to load the filters. > > Your explanation of the workflow is correct, with one small correction. > The template will handoff the search for the correct *Score* to the > filter function. Whatever the filter function returns will then be inserted > in place of the {scores|from_player:person} part in your template. One > way of getting the correct score would be to loop over the items in your > scores dictionary, and find the one where the identification numbers match. > One suggestion, instead of returning a dictionary from your filter > function, you should return the value you want to display. So maybe your > filter can look something like: > def get_score_for_person(scores, person): > for s in scores: > if s['Number'] == p.Number: > return s['Score'] > > > And you're right, maybe you can rename the filter to be > get_score_for_person if that is more clear for your application. > > On Monday, August 29, 2016 at 8:12:56 PM UTC+4, Aaron Weisberg wrote: >> >> Thanks Asad. Is that why I'm getting errors saying invalid filter name? >> >> Also I'm having a difficult time thinking my way through the workflow. >> I'm defining a new function that requires scores(my URL based dictionary) >> and person (my database dictionary). The function then asks to return the >> scores of the corresponding game number. Then the template is looking for >> the correct value in the scores dictionary that has the same Number >> identification as the existing person.Number? >> >> I think what is confusing me is the use of "player" in ludovics example >> >> Thanks >> >> Aaron >> >> On Aug 29, 2016 11:53 AM, "Asad Jibran Ahmed" <[email protected]> wrote: >> >>> No need to change the context, since the variable names the example here >>> uses are the same as your existing context. It should work as long as you >>> remember to {% load APPNAME %} your filters in the template first. >>> >>> >>> Asad Jibran Ahmed <[email protected]> >>> http://blog.asadjb.com >>> >>> On Mon, Aug 29, 2016 at 6:50 PM, Aaron Weisberg <[email protected]> >>> wrote: >>> >>>> Thanks ludovic, >>>> >>>> I'm trying to write that python code presently- would I have to also >>>> change the context? how would that look? >>>> >>>> Thanks >>>> >>>> On Fri, Aug 26, 2016 at 10:40 AM, ludovic coues <[email protected]> >>>> wrote: >>>> >>>>> You could write a filter [1]. It would be used like {{ >>>>> scores|from_player:person }} and look like that: >>>>> >>>>> def from_player (scores, player): >>>>> return scores[player.Number] >>>>> >>>>> You might want to adjust to your actual code, check that you got the >>>>> right arguments and that kind of things. >>>>> >>>>> [1] https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/ >>>>> >>>>> 2016-08-26 15:50 GMT+02:00 Aaron Weisberg <[email protected]>: >>>>> > I didn't really know how to label this question, but I think it's an >>>>> > interesting concept and I haven't seen a resolution anywhere else. >>>>> > >>>>> > I currently have two different dictionaries as context for a >>>>> template: >>>>> > >>>>> > Enter code here...context ={ >>>>> > 'person':person, >>>>> > 'scores':scores, >>>>> > } >>>>> > >>>>> > >>>>> > Each of these dictionaries has a common key (person.Number), >>>>> > (scores.Number), however the person dictionary is based off of a >>>>> model in my >>>>> > django database, while scores comes from a json feed that I parse >>>>> through: >>>>> > >>>>> > I currently run through a table in a template that looks like this: >>>>> > >>>>> > Enter code here...<table class="table"> >>>>> > <thead> >>>>> > <tr> >>>>> > <th>Person</th> >>>>> > <th>Person Number</th> >>>>> > <th>First Name</th> >>>>> > <th>Last Name </th> >>>>> > <th> City </th> >>>>> > <th> Score</th> >>>>> > </tr> >>>>> > </thead> >>>>> > <tbody> >>>>> > {% for person in persons %} >>>>> > <tr> >>>>> > <td>{{ person.Number }}</td> >>>>> > <td>{{ person.firstName }}</td> >>>>> > >>>>> <td>{{ >>>>> > person.lastName }}</td> >>>>> > >>>>> <td>{{ >>>>> > person.city }}</td> >>>>> > >>>>> > <td>??'''scores.score1 goes here'''</td> >>>>> > >>>>> > {% endfor %} >>>>> > >>>>> > </table> >>>>> > >>>>> > What I'm trying to figure out to do is figure out how to get that >>>>> final >>>>> > detail loaded into the table where we would find the score specific >>>>> to that >>>>> > person.Number. In other words how to go through my scores >>>>> dictionary in >>>>> > this template and find the corresponding score1 using the >>>>> person.Number from >>>>> > the other dictionary as the value. >>>>> > >>>>> > >>>>> > Let me know if you have any ideas. >>>>> > >>>>> > Thanks. >>>>> > >>>>> > >>>>> > -- >>>>> > You received this message because you are subscribed to the Google >>>>> Groups >>>>> > "Django users" group. >>>>> > To unsubscribe from this group and stop receiving emails from it, >>>>> send an >>>>> > email to [email protected]. >>>>> > To post to this group, send email to [email protected]. >>>>> > Visit this group at https://groups.google.com/group/django-users. >>>>> > To view this discussion on the web visit >>>>> > https://groups.google.com/d/msgid/django-users/d05c8fc4-706b >>>>> -422b-bc11-b656f1950dea%40googlegroups.com. >>>>> > For more options, visit https://groups.google.com/d/optout. >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Cordialement, Coues Ludovic >>>>> +336 148 743 42 >>>>> >>>>> -- >>>>> You received this message because you are subscribed to a topic in the >>>>> Google Groups "Django users" group. >>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>>>> pic/django-users/UlgghbsoqYI/unsubscribe. >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at https://groups.google.com/group/django-users. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/django-users/CAEuG%2BTatGS >>>>> wstRkfEDpZdeB6yMv2BobiaQ_Zb3CEL7ZXr5kE-g%40mail.gmail.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Django users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at https://groups.google.com/group/django-users. >>>> To view this discussion on the web visit https://groups.google.com/d/ms >>>> gid/django-users/CAL5RJ55RzR6MuwXS-ARFKKDb948ijOW9jfp27Th76X >>>> t006%3D_5g%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/django-users/CAL5RJ55RzR6MuwXS-ARFKKDb948ijOW9jfp27Th76Xt006%3D_5g%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Django users" group. >>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>> pic/django-users/UlgghbsoqYI/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at https://groups.google.com/group/django-users. >>> To view this discussion on the web visit https://groups.google.com/d/ms >>> gid/django-users/CA%2BYYaWequ_C-hAGkMWWjg1R8MWxXk%3DLwitdP1M >>> 92hGGy0B%2BYrg%40mail.gmail.com >>> <https://groups.google.com/d/msgid/django-users/CA%2BYYaWequ_C-hAGkMWWjg1R8MWxXk%3DLwitdP1M92hGGy0B%2BYrg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > You received this message because you are subscribed to a topic in the > Google Groups "Django users" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/django-users/UlgghbsoqYI/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/django-users/2e91d72f-f6b0-4a63-8fc3-88f58be2ca30%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/2e91d72f-f6b0-4a63-8fc3-88f58be2ca30%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAL5RJ563DQVnJU0Y_MJLOZ_Dfk_qDjrkzwsdLVUkhQTT5QAALw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

