Fellow Report -- March 5, 2018

2018-03-05 Thread Carlton Gibson
Hi all, 

Last week I reviewed patches (etc) on: 

https://code.djangoproject.com/ticket/18620 -- Prefer current Site when 
checking M2M in "shortcut"/"view_on_site" redirect
https://code.djangoproject.com/ticket/3461  -- DatabaseWrapper should pass 
through args and kwargs to underlying database adapter
https://code.djangoproject.com/ticket/26291 -- Allowed loaddata to handle 
forward references in natural_key fixtures.
https://code.djangoproject.com/ticket/22449 -- Colorize output of test 
results
https://code.djangoproject.com/ticket/21963 -- makemessages still ignores 
translations in templates with inline comment tags
https://code.djangoproject.com/ticket/27728 -- Allowed overriding admin 
templatetag's templates.
https://code.djangoproject.com/ticket/28184 -- FileField storage param 
should allow a callable
https://code.djangoproject.com/ticket/19580 -- Unify reverse foreign key 
and m2m unsaved model querying
https://code.djangoproject.com/ticket/29166 -- in lookup doesn't work with 
lists in a When clause
https://code.djangoproject.com/ticket/29116 -- Geometry editing issue when 
widget map_srid different from original value srid
https://code.djangoproject.com/ticket/28250 -- Ignore soft applied 
migrations in consistency check
https://code.djangoproject.com/ticket/28835 -- Made development server 
shutdown on SIGTERM
https://code.djangoproject.com/ticket/29144 -- `DjangoTranslation.merge` 
loses fallbacks
https://code.djangoproject.com/ticket/29172 -- Using Window in Subquery 
causes AttributeError
https://code.djangoproject.com/ticket/28459 -- Improved performance of time 
difference expressions on MySQL


Kind Regards,

Carlton

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/3a207fc3-a6f5-4787-b417-a432b4e8993a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


URL Query Params via Reverse.

2018-03-05 Thread Matthew Bridges
Hello all, first contribution to the dev community here, I wanted to get 
some thoughts on a feature that I thought might be a helpful.

I notice myself writing this pattern a lot when constructing redirect URLS.

```
def some_view(request):
 querystring = 
"?some-key={some_key}&another-key={another_key}".format(some_key=some_value, 
another_key=another_value)
 url = "{url}{querystring}".format(url=reverse('some_app:some_view'), 
querystring=querystring)
 return HttpResponseRedirect(url)
```

I was thinking about writing a helper function that grabbed a reversed URL, 
and unpacked a data dict into a query string. Building up strings feels 
nasty, and doing this in a functional manner feels much nicer.

Pseudo code might look something like:

```
def reverse_with_querystring(viewname, data=None)
# get viewname

# loop over data

# IRI encode url

# return constructed URL
```

```
url = reverse_with_querystring('myapp:myview', data={'keyone': '123', 
'keytwo' 321)
```

Questions:
 - Do other people use this syntax to build up querystrings / am I solving 
a problem that doesn't need solving?
 - Is there already a helper that allows this behaviour?
 - If the function were to be included, would django/urls be the 
appropriate module, given that the function utilises reverse? Or perhaps 
somewhere else. The behaviour would be similar to get_absolute_url type 
functions.
 - Am I doing this right?

Thanks :)

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/7846f70a-ddf9-47fe-b99f-915d2ff7ce48%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: URL Query Params via Reverse.

2018-03-05 Thread Collin Anderson
Hi Matthew,

Are you aware of Python's urlencode?
https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode

It sounds like you want something like:
def reverse_with_querystring(viewname, data=None):
return "{url}{querystring}".format(url=reverse(viewname),
querystring='?' + urlencode(data) if data else '')

Collin

On Mon, Mar 5, 2018 at 5:35 AM, Matthew Bridges <
matthew.brid...@wearefarm.com> wrote:

> Hello all, first contribution to the dev community here, I wanted to get
> some thoughts on a feature that I thought might be a helpful.
>
> I notice myself writing this pattern a lot when constructing redirect URLS.
>
> ```
> def some_view(request):
>  querystring = "?some-key={some_key}&another-
> key={another_key}".format(some_key=some_value, another_key=another_value)
>  url = "{url}{querystring}".format(url=reverse('some_app:some_view'),
> querystring=querystring)
>  return HttpResponseRedirect(url)
> ```
>
> I was thinking about writing a helper function that grabbed a reversed
> URL, and unpacked a data dict into a query string. Building up strings
> feels nasty, and doing this in a functional manner feels much nicer.
>
> Pseudo code might look something like:
>
> ```
> def reverse_with_querystring(viewname, data=None)
> # get viewname
>
> # loop over data
>
> # IRI encode url
>
> # return constructed URL
> ```
>
> ```
> url = reverse_with_querystring('myapp:myview', data={'keyone': '123',
> 'keytwo' 321)
> ```
>
> Questions:
>  - Do other people use this syntax to build up querystrings / am I solving
> a problem that doesn't need solving?
>  - Is there already a helper that allows this behaviour?
>  - If the function were to be included, would django/urls be the
> appropriate module, given that the function utilises reverse? Or perhaps
> somewhere else. The behaviour would be similar to get_absolute_url type
> functions.
>  - Am I doing this right?
>
> Thanks :)
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django developers (Contributions to Django itself)" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-developers+unsubscr...@googlegroups.com.
> To post to this group, send email to django-developers@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-developers.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-developers/7846f70a-ddf9-47fe-b99f-
> 915d2ff7ce48%40googlegroups.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/CAFO84S6gUxTurNqD5KgqP_k7O5UWfddceAjWN8ujuq9AJ%3DJG%3DQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: URL Query Params via Reverse.

2018-03-05 Thread Tim Graham
The problem is discussed in https://code.djangoproject.com/ticket/25582. I 
knew the ticket existed but I found it with the Google search: 
site:code.djangoproject.com reverse querystring.

On Monday, March 5, 2018 at 8:52:14 AM UTC-5, Collin Anderson wrote:
>
> Hi Matthew,
>
> Are you aware of Python's urlencode? 
> https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode
>
> It sounds like you want something like:
> def reverse_with_querystring(viewname, data=None):
> return "{url}{querystring}".format(url=reverse(viewname), 
> querystring='?' + urlencode(data) if data else '')
>
> Collin
>
> On Mon, Mar 5, 2018 at 5:35 AM, Matthew Bridges  > wrote:
>
>> Hello all, first contribution to the dev community here, I wanted to get 
>> some thoughts on a feature that I thought might be a helpful.
>>
>> I notice myself writing this pattern a lot when constructing redirect 
>> URLS.
>>
>> ```
>> def some_view(request):
>>  querystring = 
>> "?some-key={some_key}&another-key={another_key}".format(some_key=some_value, 
>> another_key=another_value)
>>  url = "{url}{querystring}".format(url=reverse('some_app:some_view'), 
>> querystring=querystring)
>>  return HttpResponseRedirect(url)
>> ```
>>
>> I was thinking about writing a helper function that grabbed a reversed 
>> URL, and unpacked a data dict into a query string. Building up strings 
>> feels nasty, and doing this in a functional manner feels much nicer.
>>
>> Pseudo code might look something like:
>>
>> ```
>> def reverse_with_querystring(viewname, data=None)
>> # get viewname
>>
>> # loop over data
>>
>> # IRI encode url
>>
>> # return constructed URL
>> ```
>>
>> ```
>> url = reverse_with_querystring('myapp:myview', data={'keyone': '123', 
>> 'keytwo' 321)
>> ```
>>
>> Questions:
>>  - Do other people use this syntax to build up querystrings / am I 
>> solving a problem that doesn't need solving?
>>  - Is there already a helper that allows this behaviour?
>>  - If the function were to be included, would django/urls be the 
>> appropriate module, given that the function utilises reverse? Or perhaps 
>> somewhere else. The behaviour would be similar to get_absolute_url type 
>> functions.
>>  - Am I doing this right?
>>
>> Thanks :)
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Django developers (Contributions to Django itself)" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to django-develop...@googlegroups.com .
>> To post to this group, send email to django-d...@googlegroups.com 
>> .
>> Visit this group at https://groups.google.com/group/django-developers.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-developers/7846f70a-ddf9-47fe-b99f-915d2ff7ce48%40googlegroups.com
>>  
>> 
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/6d2efe14-05c4-4c9a-9320-7e903818ff0f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.