· 8 years ago · Dec 05, 2017, 08:56 AM
1{
2 "detail": "Authentication credentials were not provided."
3}
4
5from django.contrib.auth.models import User, Group
6from rest_framework import serializers
7
8
9class UserSerializer(serializers.HyperlinkedModelSerializer):
10 class Meta:
11 model = User
12 fields = ('url', 'username', 'email', 'groups')
13
14
15class GroupSerializer(serializers.HyperlinkedModelSerializer):
16 class Meta:
17 model = Group
18 fields = ('url', 'name')
19
20from django.contrib.auth.models import User, Group
21from rest_framework import viewsets
22from TestAPI.apis.serializers import UserSerializer, GroupSerializer
23
24
25class UserViewSet(viewsets.ModelViewSet):
26 """
27 API endpoint that allows users to be viewed or edited.
28 """
29 queryset = User.objects.all().order_by('-date_joined')
30 serializer_class = UserSerializer
31
32
33class GroupViewSet(viewsets.ModelViewSet):
34 """
35 API endpoint that allows groups to be viewed or edited.
36 """
37 queryset = Group.objects.all()
38 serializer_class = GroupSerializer
39
40import os
41
42BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
43
44SECRET_KEY = '2@$&-xf%cxu=#m+%ew$t$0h&xf&_75(6=^f+l@o+l-fc@1@(y3'
45
46DEBUG = True
47
48ALLOWED_HOSTS = ['*']
49
50
51# Application definition
52
53INSTALLED_APPS = [
54 'django.contrib.admin',
55 'django.contrib.auth',
56 'django.contrib.contenttypes',
57 'django.contrib.sessions',
58 'django.contrib.messages',
59 'django.contrib.staticfiles',
60 'rest_framework',
61]
62
63REST_FRAMEWORK = {
64 'DEFAULT_PERMISSION_CLASSES': [
65 'rest_framework.permissions.IsAdminUser',
66 ],
67}
68
69MIDDLEWARE = [
70 'django.middleware.security.SecurityMiddleware',
71 'django.contrib.sessions.middleware.SessionMiddleware',
72 'django.middleware.common.CommonMiddleware',
73 'django.middleware.csrf.CsrfViewMiddleware',
74 'django.contrib.auth.middleware.AuthenticationMiddleware',
75 'django.contrib.messages.middleware.MessageMiddleware',
76 'django.middleware.clickjacking.XFrameOptionsMiddleware',
77]
78
79ROOT_URLCONF = 'TestAPI.urls'
80
81TEMPLATES = [
82 {
83 'BACKEND': 'django.template.backends.django.DjangoTemplates',
84 'DIRS': [],
85 'APP_DIRS': True,
86 'OPTIONS': {
87 'context_processors': [
88 'django.template.context_processors.debug',
89 'django.template.context_processors.request',
90 'django.contrib.auth.context_processors.auth',
91 'django.contrib.messages.context_processors.messages',
92 ],
93 },
94 },
95]
96
97WSGI_APPLICATION = 'TestAPI.wsgi.application'
98
99
100# Database
101# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
102
103DATABASES = {
104 'default': {
105 'ENGINE': 'django.db.backends.sqlite3',
106 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
107 }
108}
109
110
111# Password validation
112# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
113
114AUTH_PASSWORD_VALIDATORS = [
115 {
116 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
117 },
118 {
119 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
120 },
121 {
122 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
123 },
124 {
125 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
126 },
127]
128
129
130# Internationalization
131# https://docs.djangoproject.com/en/1.11/topics/i18n/
132
133LANGUAGE_CODE = 'en-us'
134
135TIME_ZONE = 'UTC'
136
137USE_I18N = True
138
139USE_L10N = True
140
141USE_TZ = True
142
143
144# Static files (CSS, JavaScript, Images)
145# https://docs.djangoproject.com/en/1.11/howto/static-files/
146
147STATIC_URL = '/static/'
148
149from django.conf.urls import url, include
150from rest_framework import routers
151from TestAPI.apis import views
152
153router = routers.DefaultRouter()
154router.register(r'users', views.UserViewSet)
155router.register(r'groups', views.GroupViewSet)
156
157# Wire up our API using automatic URL routing.
158# Additionally, we include login URLs for the browsable API.
159urlpatterns = [
160 url(r'^', include(router.urls)),
161 url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
162]
163
164option_settings:
165 aws:elasticbeanstalk:container:python:
166 WSGIPath: TestAPI/wsgi.py