Django Todo Guide Full
Django Todo Guide Full
1. Setting Up Django
env\Scripts\activate (Windows)
3. Install Django:
cd todoproject
5. Create an app:
7. Run migrations:
Models define your database structure. Example model for a To-Do item:
class ToDo(models.Model):
name = models.CharField(max_length=255)
details = models.TextField()
start_time = models.DateTimeField()
end_time = models.DateTimeField()
completed = models.BooleanField(default=False)
class ToDoSerializer(serializers.ModelSerializer):
class Meta:
model = ToDo
fields = '__all__'
1. Manual Serializer:
class SimpleSerializer(serializers.Serializer):
name = serializers.CharField()
class ToDoList(APIView):
todos = ToDo.objects.filter(user=request.user)
return Response(serializer.data)
serializer = ToDoSerializer(data=request.data)
if serializer.is_valid():
serializer.save(user=request.user)
class ToDoDetail(APIView):
def get_object(self, pk):
return ToDo.objects.get(pk=pk)
todo = self.get_object(pk)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
todo = self.get_object(pk)
todo.delete()
return Response(status=204)
1. In app/urls.py:
urlpatterns = [
2. In project/urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('todo.urls')),
urlpatterns += [
path('auth/', obtain_auth_token),
class Meta:
model = User
class RegisterUser(generics.CreateAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = [AllowAny]
user = serializer.save()
Token.objects.create(user=user)
Add to urls.py:
path('register/', RegisterUser.as_view()),
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
}
4. Models, Serializers, Views, URLs ? all work together for a fully functional to-do app.