a-HA. Simple. I had a suspicion this would be a python solution rather than Django-specific solution.
Thanks! On Oct 27, 11:14 am, Daniel Roseman <dan...@roseman.org.uk> wrote: > On Oct 27, 10:48 am, James Harrison Fisher <jameshfis...@gmail.com> > wrote: > > > > > Hi, > > > I've recently come across something that's stumped me. I am creating > > a 'shortcut' function for easier creation of add/edit views. This > > function needs to make a query on a model in the simple form: > > > model.objects.get(field_name=value) > > > where the variables "model", "field_name", and "value" are passed to > > the function at runtime rather than hard-coded. > > > This would be fine if I knew that field_name was the primary key, as I > > could just use (pk=value). Problem is, I'm not (necessarily) working > > with a primary key, and I obviously can't pass field_name, which is a > > string, as a the name of a keyword argument. So I would like to do > > something like the following: > > > def genericView(model, identifier_field, identifier_value): > > model.objects.get(identifierfield, identifier_value) > > [...] > > > But to the best of my knowledge get() doesn't accept positional > > arguments in such a way, and I can't find a likely method elsewhere > > that might do what I want. > > > So: > > 1. Do I have a mental block/am I being amazingly stupid? or, > > 2. is there indeed a method to do what I want?, or > > 3. do I have to fall back to SQL? > > > Thanks in advance, > > > James > > You can do use a dictionary to pass positional arguments, with the ** > trick: > model.objects.get(**{identifierfield: identifier_value}) > > -- > DR. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---