Removed some unnecessary __exact operators in filters.

This commit is contained in:
Tim Graham 2014-01-17 17:27:04 -05:00
parent 298a2b577f
commit b87c59b04b
11 changed files with 17 additions and 17 deletions

View File

@ -1620,7 +1620,7 @@ class ModelAdmin(BaseModelAdmin):
app_label = opts.app_label app_label = opts.app_label
action_list = LogEntry.objects.filter( action_list = LogEntry.objects.filter(
object_id=unquote(object_id), object_id=unquote(object_id),
content_type__id__exact=ContentType.objects.get_for_model(model).id content_type=ContentType.objects.get_for_model(model)
).select_related().order_by('action_time') ).select_related().order_by('action_time')
context = dict(self.admin_site.each_context(), context = dict(self.admin_site.each_context(),

View File

@ -18,7 +18,7 @@ class AdminLogNode(template.Node):
user_id = self.user user_id = self.user
if not user_id.isdigit(): if not user_id.isdigit():
user_id = context[self.user].pk user_id = context[self.user].pk
context[self.varname] = LogEntry.objects.filter(user__pk__exact=user_id).select_related('content_type', 'user')[:int(self.limit)] context[self.varname] = LogEntry.objects.filter(user__pk=user_id).select_related('content_type', 'user')[:int(self.limit)]
return '' return ''

View File

@ -324,7 +324,7 @@ def create_generic_related_manager(superclass):
self.pk_val = self.instance._get_pk_val() self.pk_val = self.instance._get_pk_val()
self.core_filters = { self.core_filters = {
'%s__pk' % content_type_field_name: content_type.id, '%s__pk' % content_type_field_name: content_type.id,
'%s__exact' % object_id_field_name: instance._get_pk_val(), '%s' % object_id_field_name: instance._get_pk_val(),
} }
def __call__(self, **kwargs): def __call__(self, **kwargs):

View File

@ -35,12 +35,12 @@ def flatpage(request, url):
site_id = get_current_site(request).id site_id = get_current_site(request).id
try: try:
f = get_object_or_404(FlatPage, f = get_object_or_404(FlatPage,
url__exact=url, sites__id__exact=site_id) url=url, sites=site_id)
except Http404: except Http404:
if not url.endswith('/') and settings.APPEND_SLASH: if not url.endswith('/') and settings.APPEND_SLASH:
url += '/' url += '/'
f = get_object_or_404(FlatPage, f = get_object_or_404(FlatPage,
url__exact=url, sites__id__exact=site_id) url=url, sites=site_id)
return HttpResponsePermanentRedirect('%s/' % request.path) return HttpResponsePermanentRedirect('%s/' % request.path)
else: else:
raise raise

View File

@ -39,4 +39,4 @@ class CurrentSiteManager(models.Manager):
def get_queryset(self): def get_queryset(self):
if not self.__is_validated: if not self.__is_validated:
self._validate_field_name() self._validate_field_name()
return super(CurrentSiteManager, self).get_queryset().filter(**{self.__field_name + '__id__exact': settings.SITE_ID}) return super(CurrentSiteManager, self).get_queryset().filter(**{self.__field_name + '__id': settings.SITE_ID})

View File

@ -84,7 +84,7 @@ This accomplishes several things quite nicely:
def article_detail(request, article_id): def article_detail(request, article_id):
try: try:
a = Article.objects.get(id=article_id, sites__id__exact=get_current_site(request).id) a = Article.objects.get(id=article_id, sites__id=get_current_site(request).id)
except Article.DoesNotExist: except Article.DoesNotExist:
raise Http404 raise Http404
# ... # ...

View File

@ -101,7 +101,7 @@ You can also change a password programmatically, using
.. code-block:: python .. code-block:: python
>>> from django.contrib.auth.models import User >>> from django.contrib.auth.models import User
>>> u = User.objects.get(username__exact='john') >>> u = User.objects.get(username='john')
>>> u.set_password('new password') >>> u.set_password('new password')
>>> u.save() >>> u.save()

View File

@ -111,7 +111,7 @@ Create and add a ``Publication`` to an ``Article`` in one step using
Many-to-many relationships can be queried using :ref:`lookups across Many-to-many relationships can be queried using :ref:`lookups across
relationships <lookups-that-span-relationships>`:: relationships <lookups-that-span-relationships>`::
>>> Article.objects.filter(publications__id__exact=1) >>> Article.objects.filter(publications__id=1)
[<Article: Django lets you build Web apps easily>, <Article: NASA uses Python>] [<Article: Django lets you build Web apps easily>, <Article: NASA uses Python>]
>>> Article.objects.filter(publications__pk=1) >>> Article.objects.filter(publications__pk=1)
[<Article: Django lets you build Web apps easily>, <Article: NASA uses Python>] [<Article: Django lets you build Web apps easily>, <Article: NASA uses Python>]
@ -143,7 +143,7 @@ The :meth:`~django.db.models.query.QuerySet.count` function respects
Reverse m2m queries are supported (i.e., starting at the table that doesn't have Reverse m2m queries are supported (i.e., starting at the table that doesn't have
a :class:`~django.db.models.ManyToManyField`):: a :class:`~django.db.models.ManyToManyField`)::
>>> Publication.objects.filter(id__exact=1) >>> Publication.objects.filter(id=1)
[<Publication: The Python Journal>] [<Publication: The Python Journal>]
>>> Publication.objects.filter(pk=1) >>> Publication.objects.filter(pk=1)
[<Publication: The Python Journal>] [<Publication: The Python Journal>]
@ -151,7 +151,7 @@ a :class:`~django.db.models.ManyToManyField`)::
>>> Publication.objects.filter(article__headline__startswith="NASA") >>> Publication.objects.filter(article__headline__startswith="NASA")
[<Publication: Highlights for Children>, <Publication: Science News>, <Publication: Science Weekly>, <Publication: The Python Journal>] [<Publication: Highlights for Children>, <Publication: Science News>, <Publication: Science Weekly>, <Publication: The Python Journal>]
>>> Publication.objects.filter(article__id__exact=1) >>> Publication.objects.filter(article__id=1)
[<Publication: The Python Journal>] [<Publication: The Python Journal>]
>>> Publication.objects.filter(article__pk=1) >>> Publication.objects.filter(article__pk=1)
[<Publication: The Python Journal>] [<Publication: The Python Journal>]

View File

@ -123,7 +123,7 @@ This works as many levels deep as you want. There's no limit. For example::
[<Article: This is a test>] [<Article: This is a test>]
# Find all Articles for any Reporter whose first name is "John". # Find all Articles for any Reporter whose first name is "John".
>>> Article.objects.filter(reporter__first_name__exact='John') >>> Article.objects.filter(reporter__first_name='John')
[<Article: John's second story>, <Article: This is a test>] [<Article: John's second story>, <Article: This is a test>]
Exact match is implied here:: Exact match is implied here::
@ -134,7 +134,7 @@ Exact match is implied here::
Query twice over the related field. This translates to an AND condition in the Query twice over the related field. This translates to an AND condition in the
WHERE clause:: WHERE clause::
>>> Article.objects.filter(reporter__first_name__exact='John', reporter__last_name__exact='Smith') >>> Article.objects.filter(reporter__first_name='John', reporter__last_name='Smith')
[<Article: John's second story>, <Article: This is a test>] [<Article: John's second story>, <Article: This is a test>]
For the related lookup you can supply a primary key value or pass the related For the related lookup you can supply a primary key value or pass the related
@ -184,7 +184,7 @@ Queries can go round in circles::
[<Reporter: John Smith>, <Reporter: John Smith>, <Reporter: John Smith>, <Reporter: John Smith>] [<Reporter: John Smith>, <Reporter: John Smith>, <Reporter: John Smith>, <Reporter: John Smith>]
>>> Reporter.objects.filter(article__reporter__first_name__startswith='John').distinct() >>> Reporter.objects.filter(article__reporter__first_name__startswith='John').distinct()
[<Reporter: John Smith>] [<Reporter: John Smith>]
>>> Reporter.objects.filter(article__reporter__exact=r).distinct() >>> Reporter.objects.filter(article__reporter=r).distinct()
[<Reporter: John Smith>] [<Reporter: John Smith>]
If you delete a reporter, his articles will be deleted (assuming that the If you delete a reporter, his articles will be deleted (assuming that the

View File

@ -113,7 +113,7 @@ This of course works in reverse::
>>> Place.objects.get(pk=1) >>> Place.objects.get(pk=1)
<Place: Demon Dogs the place> <Place: Demon Dogs the place>
>>> Place.objects.get(restaurant__place__exact=p1) >>> Place.objects.get(restaurant__place=p1)
<Place: Demon Dogs the place> <Place: Demon Dogs the place>
>>> Place.objects.get(restaurant=r) >>> Place.objects.get(restaurant=r)
<Place: Demon Dogs the place> <Place: Demon Dogs the place>

View File

@ -411,7 +411,7 @@ can specify the field name suffixed with ``_id``. In this case, the value
parameter is expected to contain the raw value of the foreign model's primary parameter is expected to contain the raw value of the foreign model's primary
key. For example: key. For example:
>>> Entry.objects.filter(blog_id__exact=4) >>> Entry.objects.filter(blog_id=4)
If you pass an invalid keyword argument, a lookup function will raise If you pass an invalid keyword argument, a lookup function will raise
``TypeError``. ``TypeError``.
@ -489,7 +489,7 @@ want.
This example retrieves all ``Entry`` objects with a ``Blog`` whose ``name`` This example retrieves all ``Entry`` objects with a ``Blog`` whose ``name``
is ``'Beatles Blog'``:: is ``'Beatles Blog'``::
>>> Entry.objects.filter(blog__name__exact='Beatles Blog') >>> Entry.objects.filter(blog__name='Beatles Blog')
This spanning can be as deep as you'd like. This spanning can be as deep as you'd like.