missing 1 required positional argument: 'request' django restframework
I was using routers for creating urls now i want to make urls for my api, but problem is, i am getting error
createuser() missing 1 required positional argument: 'request'missing 1 required positional argument: 'request'
iam getting same error for all my methods inside UserAuthAPIView class, i have already read solutions on stackoverflow but they are not working i my case.
I have many methods in UserAuthAPIView class and i want to create urls for all of those.
for eg
127.0.0.1:8000/api
127.0.0.1:8000/api/createuser
127.0.0.1:8000/api/login
127.0.0.1:8000/api/<pk>/viewuser
urls.py
from django.conf.urls import url
from UserAPI.api import views
from UserAPI.api.views import UserAuthAPIView
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.createuser, name='user-create'),
#url(r'userlogin/$', views.UserAuthAPIView.userlogin, name='user-login'),
]
views.py
class UserAuthAPIView(ModelViewSet):
queryset = UserModel.objects.all()
serializer_class = ListViewSerializer
def get_object(self, queryset=None):
return self.request.user
@action(methods=['post'], detail=False, permission_classes=[AllowAny], serializer_class=UserSerializer)
def createuser(self, request, *args, **kwargs):
data = request.data
serializer = UserSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response({ "status" : "user created successfully"}, status=HTTP_201_CREATED)
django django-rest-framework django-rest-viewsets
add a comment |
I was using routers for creating urls now i want to make urls for my api, but problem is, i am getting error
createuser() missing 1 required positional argument: 'request'missing 1 required positional argument: 'request'
iam getting same error for all my methods inside UserAuthAPIView class, i have already read solutions on stackoverflow but they are not working i my case.
I have many methods in UserAuthAPIView class and i want to create urls for all of those.
for eg
127.0.0.1:8000/api
127.0.0.1:8000/api/createuser
127.0.0.1:8000/api/login
127.0.0.1:8000/api/<pk>/viewuser
urls.py
from django.conf.urls import url
from UserAPI.api import views
from UserAPI.api.views import UserAuthAPIView
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.createuser, name='user-create'),
#url(r'userlogin/$', views.UserAuthAPIView.userlogin, name='user-login'),
]
views.py
class UserAuthAPIView(ModelViewSet):
queryset = UserModel.objects.all()
serializer_class = ListViewSerializer
def get_object(self, queryset=None):
return self.request.user
@action(methods=['post'], detail=False, permission_classes=[AllowAny], serializer_class=UserSerializer)
def createuser(self, request, *args, **kwargs):
data = request.data
serializer = UserSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response({ "status" : "user created successfully"}, status=HTTP_201_CREATED)
django django-rest-framework django-rest-viewsets
add a comment |
I was using routers for creating urls now i want to make urls for my api, but problem is, i am getting error
createuser() missing 1 required positional argument: 'request'missing 1 required positional argument: 'request'
iam getting same error for all my methods inside UserAuthAPIView class, i have already read solutions on stackoverflow but they are not working i my case.
I have many methods in UserAuthAPIView class and i want to create urls for all of those.
for eg
127.0.0.1:8000/api
127.0.0.1:8000/api/createuser
127.0.0.1:8000/api/login
127.0.0.1:8000/api/<pk>/viewuser
urls.py
from django.conf.urls import url
from UserAPI.api import views
from UserAPI.api.views import UserAuthAPIView
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.createuser, name='user-create'),
#url(r'userlogin/$', views.UserAuthAPIView.userlogin, name='user-login'),
]
views.py
class UserAuthAPIView(ModelViewSet):
queryset = UserModel.objects.all()
serializer_class = ListViewSerializer
def get_object(self, queryset=None):
return self.request.user
@action(methods=['post'], detail=False, permission_classes=[AllowAny], serializer_class=UserSerializer)
def createuser(self, request, *args, **kwargs):
data = request.data
serializer = UserSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response({ "status" : "user created successfully"}, status=HTTP_201_CREATED)
django django-rest-framework django-rest-viewsets
I was using routers for creating urls now i want to make urls for my api, but problem is, i am getting error
createuser() missing 1 required positional argument: 'request'missing 1 required positional argument: 'request'
iam getting same error for all my methods inside UserAuthAPIView class, i have already read solutions on stackoverflow but they are not working i my case.
I have many methods in UserAuthAPIView class and i want to create urls for all of those.
for eg
127.0.0.1:8000/api
127.0.0.1:8000/api/createuser
127.0.0.1:8000/api/login
127.0.0.1:8000/api/<pk>/viewuser
urls.py
from django.conf.urls import url
from UserAPI.api import views
from UserAPI.api.views import UserAuthAPIView
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.createuser, name='user-create'),
#url(r'userlogin/$', views.UserAuthAPIView.userlogin, name='user-login'),
]
views.py
class UserAuthAPIView(ModelViewSet):
queryset = UserModel.objects.all()
serializer_class = ListViewSerializer
def get_object(self, queryset=None):
return self.request.user
@action(methods=['post'], detail=False, permission_classes=[AllowAny], serializer_class=UserSerializer)
def createuser(self, request, *args, **kwargs):
data = request.data
serializer = UserSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response({ "status" : "user created successfully"}, status=HTTP_201_CREATED)
django django-rest-framework django-rest-viewsets
django django-rest-framework django-rest-viewsets
edited Nov 21 '18 at 10:46
joppich
462412
462412
asked Nov 21 '18 at 10:33
Vikas GautamVikas Gautam
588
588
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Routers preform a couple of operations on the viewset and in particular add a mapping from the http verbs to the associated functions.
You need to do something similar for your action:
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
]
i am getting error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:43
My bad, indeed, it should be beviews.UserAuthAPIView.as_view
– Linovia
Nov 21 '18 at 12:45
i am not getting any error, but my form fields are not showing. when i tried to put a print statement inside createuser ,i found that createuser is not running when url is 127.0.0.1:8000/api/createuser
– Vikas Gautam
Nov 21 '18 at 13:01
this is a post, not a get.
– Linovia
Nov 21 '18 at 13:16
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
– Vikas Gautam
Nov 21 '18 at 13:22
|
show 1 more comment
You are call the Viewset in urls in wrong way. You need do it like this:
router = routers.DefaultRouter()
router.register(r'auth', UserAuthAPIView)
urlpatterns = [
url(r'^', include(router.urls)),
]
Or
urlpatterns = [
url(r'createuser/$', UserAuthAPIView.as_view({'post':'createuser'}),
]
router is creating urls like 127.0.0.1:8000/api/createuser which is what i want but it will also create url 127.0.0.1:8000/api/createuser/<anything>/
– Vikas Gautam
Nov 21 '18 at 12:47
what should be url if i want to access any method inside UserAuthAPIView class, because as_view() is giving error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:51
Well, it should not. You can use the updated answer given by Linovia or last part of my answer :)
– ruddra
Nov 21 '18 at 12:52
and the url by defaultrouter will not createcreateuser/<anything>/, it will createcreateuser <anything>/(space not slash)
– ruddra
Nov 21 '18 at 12:55
i have tried router and problem is url "127.0.0.1:8000/api/auth/ <anything>" is not throwing error "page not found" instead i am getting data as a response
– Vikas Gautam
Nov 21 '18 at 13:26
|
show 1 more comment
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53410156%2fmissing-1-required-positional-argument-request-django-restframework%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Routers preform a couple of operations on the viewset and in particular add a mapping from the http verbs to the associated functions.
You need to do something similar for your action:
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
]
i am getting error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:43
My bad, indeed, it should be beviews.UserAuthAPIView.as_view
– Linovia
Nov 21 '18 at 12:45
i am not getting any error, but my form fields are not showing. when i tried to put a print statement inside createuser ,i found that createuser is not running when url is 127.0.0.1:8000/api/createuser
– Vikas Gautam
Nov 21 '18 at 13:01
this is a post, not a get.
– Linovia
Nov 21 '18 at 13:16
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
– Vikas Gautam
Nov 21 '18 at 13:22
|
show 1 more comment
Routers preform a couple of operations on the viewset and in particular add a mapping from the http verbs to the associated functions.
You need to do something similar for your action:
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
]
i am getting error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:43
My bad, indeed, it should be beviews.UserAuthAPIView.as_view
– Linovia
Nov 21 '18 at 12:45
i am not getting any error, but my form fields are not showing. when i tried to put a print statement inside createuser ,i found that createuser is not running when url is 127.0.0.1:8000/api/createuser
– Vikas Gautam
Nov 21 '18 at 13:01
this is a post, not a get.
– Linovia
Nov 21 '18 at 13:16
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
– Vikas Gautam
Nov 21 '18 at 13:22
|
show 1 more comment
Routers preform a couple of operations on the viewset and in particular add a mapping from the http verbs to the associated functions.
You need to do something similar for your action:
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
]
Routers preform a couple of operations on the viewset and in particular add a mapping from the http verbs to the associated functions.
You need to do something similar for your action:
urlpatterns = [
url(r'^$', UserAuthAPIView.as_view({'get': 'list'}), name='user-list'),
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
]
edited Nov 21 '18 at 12:44
answered Nov 21 '18 at 11:47
LinoviaLinovia
9,36911525
9,36911525
i am getting error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:43
My bad, indeed, it should be beviews.UserAuthAPIView.as_view
– Linovia
Nov 21 '18 at 12:45
i am not getting any error, but my form fields are not showing. when i tried to put a print statement inside createuser ,i found that createuser is not running when url is 127.0.0.1:8000/api/createuser
– Vikas Gautam
Nov 21 '18 at 13:01
this is a post, not a get.
– Linovia
Nov 21 '18 at 13:16
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
– Vikas Gautam
Nov 21 '18 at 13:22
|
show 1 more comment
i am getting error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:43
My bad, indeed, it should be beviews.UserAuthAPIView.as_view
– Linovia
Nov 21 '18 at 12:45
i am not getting any error, but my form fields are not showing. when i tried to put a print statement inside createuser ,i found that createuser is not running when url is 127.0.0.1:8000/api/createuser
– Vikas Gautam
Nov 21 '18 at 13:01
this is a post, not a get.
– Linovia
Nov 21 '18 at 13:16
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
– Vikas Gautam
Nov 21 '18 at 13:22
i am getting error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:43
i am getting error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:43
My bad, indeed, it should be be
views.UserAuthAPIView.as_view– Linovia
Nov 21 '18 at 12:45
My bad, indeed, it should be be
views.UserAuthAPIView.as_view– Linovia
Nov 21 '18 at 12:45
i am not getting any error, but my form fields are not showing. when i tried to put a print statement inside createuser ,i found that createuser is not running when url is 127.0.0.1:8000/api/createuser
– Vikas Gautam
Nov 21 '18 at 13:01
i am not getting any error, but my form fields are not showing. when i tried to put a print statement inside createuser ,i found that createuser is not running when url is 127.0.0.1:8000/api/createuser
– Vikas Gautam
Nov 21 '18 at 13:01
this is a post, not a get.
– Linovia
Nov 21 '18 at 13:16
this is a post, not a get.
– Linovia
Nov 21 '18 at 13:16
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
– Vikas Gautam
Nov 21 '18 at 13:22
url(r'createuser/$', views.UserAuthAPIView.as_view({'post': 'createuser'}), name='user-create'),
– Vikas Gautam
Nov 21 '18 at 13:22
|
show 1 more comment
You are call the Viewset in urls in wrong way. You need do it like this:
router = routers.DefaultRouter()
router.register(r'auth', UserAuthAPIView)
urlpatterns = [
url(r'^', include(router.urls)),
]
Or
urlpatterns = [
url(r'createuser/$', UserAuthAPIView.as_view({'post':'createuser'}),
]
router is creating urls like 127.0.0.1:8000/api/createuser which is what i want but it will also create url 127.0.0.1:8000/api/createuser/<anything>/
– Vikas Gautam
Nov 21 '18 at 12:47
what should be url if i want to access any method inside UserAuthAPIView class, because as_view() is giving error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:51
Well, it should not. You can use the updated answer given by Linovia or last part of my answer :)
– ruddra
Nov 21 '18 at 12:52
and the url by defaultrouter will not createcreateuser/<anything>/, it will createcreateuser <anything>/(space not slash)
– ruddra
Nov 21 '18 at 12:55
i have tried router and problem is url "127.0.0.1:8000/api/auth/ <anything>" is not throwing error "page not found" instead i am getting data as a response
– Vikas Gautam
Nov 21 '18 at 13:26
|
show 1 more comment
You are call the Viewset in urls in wrong way. You need do it like this:
router = routers.DefaultRouter()
router.register(r'auth', UserAuthAPIView)
urlpatterns = [
url(r'^', include(router.urls)),
]
Or
urlpatterns = [
url(r'createuser/$', UserAuthAPIView.as_view({'post':'createuser'}),
]
router is creating urls like 127.0.0.1:8000/api/createuser which is what i want but it will also create url 127.0.0.1:8000/api/createuser/<anything>/
– Vikas Gautam
Nov 21 '18 at 12:47
what should be url if i want to access any method inside UserAuthAPIView class, because as_view() is giving error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:51
Well, it should not. You can use the updated answer given by Linovia or last part of my answer :)
– ruddra
Nov 21 '18 at 12:52
and the url by defaultrouter will not createcreateuser/<anything>/, it will createcreateuser <anything>/(space not slash)
– ruddra
Nov 21 '18 at 12:55
i have tried router and problem is url "127.0.0.1:8000/api/auth/ <anything>" is not throwing error "page not found" instead i am getting data as a response
– Vikas Gautam
Nov 21 '18 at 13:26
|
show 1 more comment
You are call the Viewset in urls in wrong way. You need do it like this:
router = routers.DefaultRouter()
router.register(r'auth', UserAuthAPIView)
urlpatterns = [
url(r'^', include(router.urls)),
]
Or
urlpatterns = [
url(r'createuser/$', UserAuthAPIView.as_view({'post':'createuser'}),
]
You are call the Viewset in urls in wrong way. You need do it like this:
router = routers.DefaultRouter()
router.register(r'auth', UserAuthAPIView)
urlpatterns = [
url(r'^', include(router.urls)),
]
Or
urlpatterns = [
url(r'createuser/$', UserAuthAPIView.as_view({'post':'createuser'}),
]
answered Nov 21 '18 at 11:49
ruddraruddra
15.4k32750
15.4k32750
router is creating urls like 127.0.0.1:8000/api/createuser which is what i want but it will also create url 127.0.0.1:8000/api/createuser/<anything>/
– Vikas Gautam
Nov 21 '18 at 12:47
what should be url if i want to access any method inside UserAuthAPIView class, because as_view() is giving error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:51
Well, it should not. You can use the updated answer given by Linovia or last part of my answer :)
– ruddra
Nov 21 '18 at 12:52
and the url by defaultrouter will not createcreateuser/<anything>/, it will createcreateuser <anything>/(space not slash)
– ruddra
Nov 21 '18 at 12:55
i have tried router and problem is url "127.0.0.1:8000/api/auth/ <anything>" is not throwing error "page not found" instead i am getting data as a response
– Vikas Gautam
Nov 21 '18 at 13:26
|
show 1 more comment
router is creating urls like 127.0.0.1:8000/api/createuser which is what i want but it will also create url 127.0.0.1:8000/api/createuser/<anything>/
– Vikas Gautam
Nov 21 '18 at 12:47
what should be url if i want to access any method inside UserAuthAPIView class, because as_view() is giving error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:51
Well, it should not. You can use the updated answer given by Linovia or last part of my answer :)
– ruddra
Nov 21 '18 at 12:52
and the url by defaultrouter will not createcreateuser/<anything>/, it will createcreateuser <anything>/(space not slash)
– ruddra
Nov 21 '18 at 12:55
i have tried router and problem is url "127.0.0.1:8000/api/auth/ <anything>" is not throwing error "page not found" instead i am getting data as a response
– Vikas Gautam
Nov 21 '18 at 13:26
router is creating urls like 127.0.0.1:8000/api/createuser which is what i want but it will also create url 127.0.0.1:8000/api/createuser/<anything>/
– Vikas Gautam
Nov 21 '18 at 12:47
router is creating urls like 127.0.0.1:8000/api/createuser which is what i want but it will also create url 127.0.0.1:8000/api/createuser/<anything>/
– Vikas Gautam
Nov 21 '18 at 12:47
what should be url if i want to access any method inside UserAuthAPIView class, because as_view() is giving error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:51
what should be url if i want to access any method inside UserAuthAPIView class, because as_view() is giving error AttributeError: 'function' object has no attribute 'as_view'
– Vikas Gautam
Nov 21 '18 at 12:51
Well, it should not. You can use the updated answer given by Linovia or last part of my answer :)
– ruddra
Nov 21 '18 at 12:52
Well, it should not. You can use the updated answer given by Linovia or last part of my answer :)
– ruddra
Nov 21 '18 at 12:52
and the url by defaultrouter will not create
createuser/<anything>/, it will create createuser <anything>/ (space not slash)– ruddra
Nov 21 '18 at 12:55
and the url by defaultrouter will not create
createuser/<anything>/, it will create createuser <anything>/ (space not slash)– ruddra
Nov 21 '18 at 12:55
i have tried router and problem is url "127.0.0.1:8000/api/auth/ <anything>" is not throwing error "page not found" instead i am getting data as a response
– Vikas Gautam
Nov 21 '18 at 13:26
i have tried router and problem is url "127.0.0.1:8000/api/auth/ <anything>" is not throwing error "page not found" instead i am getting data as a response
– Vikas Gautam
Nov 21 '18 at 13:26
|
show 1 more comment
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53410156%2fmissing-1-required-positional-argument-request-django-restframework%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown