Ich versuche eine Benutzerregistrierung mit Django-Rest-Framework zu erstellen. Aber wenn ich meine url gehen bekomme ich diese Meldung:Django REST Framework Token Registrierung
{ "detail": "Authentication credentials were not provided." }
Ist es für ein Zeichen zu fragen? Ich versuche den Benutzer zu registrieren, damit er an diesem Punkt nicht haben/brauchen sollte, oder?
Wohlgemerkt, ich bin mit meinem Browser einfach und einfach zu gehen
127.0.0.1:8000/register
Ich bin nicht um mit Winkel spielen und api des anfordernden, ich ging einfach zu meinem Browser, um zu sehen, was ich bekommen würde. Ich hatte erwartet, eine Form oder etwas zu sehen. Funktioniert es richtig und ich habe es nur falsch angesprochen?
Hier ist meine models.py
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField('email address', unique=True, db_index=True)
password1 = models.CharField(max_length=50)
username = models.CharField('username', max_length=50, unique=True, db_index=True)
image = models.FileField(upload_to='photos', null=True, blank=True)
joined = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
friends = []
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = []
objects = CustomUserManager()
def __unicode__(self):
return self.username
class Meta:
unique_together = (('username', 'password1'),)
mein views.py
@api_view(['POST'])
def create_auth(request):
serialized = CustomUserSerializer(data=request.DATA)
if serialized.is_valid():
CustomUser.objects.create_user(
serialized.init_data['email'],
serialized.init_data['username'],
serialized.init_data['password1']
)
return Response(serialized.data, status=HTTP_201_CREATED)
else:
return Response(serialized._errors, status=HTTP_400_BAD_REQUEST)
urls.py
router = DefaultRouter()
router.register(r'friends', FriendViewSet)
router.register(r'posts', PostViewSet, 'Post')
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include(router.urls)),
url(r'^users/$', UserView.as_view()),
url(r'^add_friend/$', add_friend),
url(r'^register', create_auth), # This is the url I'm trying to access.
url(r'^api-token-auth/$', ObtainAuthToken.as_view()),
url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^logout/$', Logout.as_view()),
]
EDIT 1 settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
}
fügen Sie Ihre 'REST_FRAMEWORK' aus Ihrer Einstellungsdatei. – itzMEonTV
@itzmeontv Ich habe es hinzugefügt. – ngx311