mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-05-17 22:33:43 +03:00
Merge remote-tracking branch 'reference/stable/3.3.x' into stable/3.3.3
This commit is contained in:
commit
24a2ec0501
|
@ -507,7 +507,7 @@ For example, given the following model for a tag, which has a generic relationsh
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.tag_name
|
return self.tag_name
|
||||||
|
|
||||||
And the following two models, which may be have associated tags:
|
And the following two models, which may have associated tags:
|
||||||
|
|
||||||
class Bookmark(models.Model):
|
class Bookmark(models.Model):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -325,7 +325,7 @@ Quit out of the shell...
|
||||||
|
|
||||||
In another terminal window, we can test the server.
|
In another terminal window, we can test the server.
|
||||||
|
|
||||||
We can test our API using using [curl][curl] or [httpie][httpie]. Httpie is a user friendly http client that's written in Python. Let's install that.
|
We can test our API using [curl][curl] or [httpie][httpie]. Httpie is a user friendly http client that's written in Python. Let's install that.
|
||||||
|
|
||||||
You can install httpie using pip:
|
You can install httpie using pip:
|
||||||
|
|
||||||
|
|
|
@ -6,3 +6,6 @@ twine==1.4.0
|
||||||
|
|
||||||
# Transifex client for managing translation resources.
|
# Transifex client for managing translation resources.
|
||||||
transifex-client==0.11
|
transifex-client==0.11
|
||||||
|
|
||||||
|
# Pandoc to have a nice pypi page
|
||||||
|
pypandoc
|
||||||
|
|
|
@ -186,7 +186,7 @@ class PageNumberPagination(BasePagination):
|
||||||
|
|
||||||
template = 'rest_framework/pagination/numbers.html'
|
template = 'rest_framework/pagination/numbers.html'
|
||||||
|
|
||||||
invalid_page_message = _('Invalid page "{page_number}": {message}.')
|
invalid_page_message = _('Invalid page.')
|
||||||
|
|
||||||
def paginate_queryset(self, queryset, request, view=None):
|
def paginate_queryset(self, queryset, request, view=None):
|
||||||
"""
|
"""
|
||||||
|
|
16
setup.py
16
setup.py
|
@ -7,6 +7,17 @@ import sys
|
||||||
|
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
|
try:
|
||||||
|
from pypandoc import convert
|
||||||
|
|
||||||
|
def read_md(f):
|
||||||
|
return convert(f, 'rst')
|
||||||
|
except ImportError:
|
||||||
|
print("warning: pypandoc module not found, could not convert Markdown to RST")
|
||||||
|
|
||||||
|
def read_md(f):
|
||||||
|
return open(f, 'r').read()
|
||||||
|
|
||||||
|
|
||||||
def get_version(package):
|
def get_version(package):
|
||||||
"""
|
"""
|
||||||
|
@ -45,6 +56,10 @@ version = get_version('rest_framework')
|
||||||
|
|
||||||
|
|
||||||
if sys.argv[-1] == 'publish':
|
if sys.argv[-1] == 'publish':
|
||||||
|
try:
|
||||||
|
import pypandoc
|
||||||
|
except ImportError:
|
||||||
|
print("pypandoc not installed.\nUse `pip install pypandoc`.\nExiting.")
|
||||||
if os.system("pip freeze | grep wheel"):
|
if os.system("pip freeze | grep wheel"):
|
||||||
print("wheel not installed.\nUse `pip install wheel`.\nExiting.")
|
print("wheel not installed.\nUse `pip install wheel`.\nExiting.")
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
@ -68,6 +83,7 @@ setup(
|
||||||
url='http://www.django-rest-framework.org',
|
url='http://www.django-rest-framework.org',
|
||||||
license='BSD',
|
license='BSD',
|
||||||
description='Web APIs for Django, made easy.',
|
description='Web APIs for Django, made easy.',
|
||||||
|
long_description=read_md('README.md'),
|
||||||
author='Tom Christie',
|
author='Tom Christie',
|
||||||
author_email='tom@tomchristie.com', # SEE NOTE BELOW (*)
|
author_email='tom@tomchristie.com', # SEE NOTE BELOW (*)
|
||||||
packages=get_packages('rest_framework'),
|
packages=get_packages('rest_framework'),
|
||||||
|
|
|
@ -113,7 +113,7 @@ class TestPaginationIntegration:
|
||||||
response = self.view(request)
|
response = self.view(request)
|
||||||
assert response.status_code == status.HTTP_404_NOT_FOUND
|
assert response.status_code == status.HTTP_404_NOT_FOUND
|
||||||
assert response.data == {
|
assert response.data == {
|
||||||
'detail': 'Invalid page "0": That page number is less than 1.'
|
'detail': 'Invalid page.'
|
||||||
}
|
}
|
||||||
|
|
||||||
def test_404_not_found_for_invalid_page(self):
|
def test_404_not_found_for_invalid_page(self):
|
||||||
|
@ -121,7 +121,7 @@ class TestPaginationIntegration:
|
||||||
response = self.view(request)
|
response = self.view(request)
|
||||||
assert response.status_code == status.HTTP_404_NOT_FOUND
|
assert response.status_code == status.HTTP_404_NOT_FOUND
|
||||||
assert response.data == {
|
assert response.data == {
|
||||||
'detail': 'Invalid page "invalid": That page number is not an integer.'
|
'detail': 'Invalid page.'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user