Metadata-Version: 2.1
Name: django-react-views
Version: 1.0
Summary: A Django app providing generic Class Based views and template tags that make it easy to use react alongside django views and templates.
Home-page: UNKNOWN
Author: Johnathan Ryan Hornik
Author-email: ryanhornik@gmail.com
License: MIT License
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.11
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content

=====
django_react_views
=====

django_react_views is a Django app providing generic Class Based views and template tags that make it easy to use react
alongside django views and templates.

Quick start
-----------

1. Add "django_react_views" to your INSTALLED_APPS setting like this::

    INSTALLED_APPS = [
        ...
        'django_react_views',
    ]

2. Create a directory in your app called 'react'

3. Copy webpack.config.js or use you're own webpack config as long as it builds your react components into one of your STATICFILES_DIRS

4. Use npm to install AT LEAST the packages required for react & building with webpack::

    npm install --save-prod react react-dom
    npm install --save-dev babel-core babel-loader babel-preset-env babel-preset-es2015 babel-preset-react glob webpack webpack-cli

5. Add these scripts to package.json ::

    "scripts": {
        "build": "webpack",
        "watch": "webpack --watch"
    },

6. Execute `npm run watch` to start building your react files

7. Add the react template tag to the template where you want to show your react component::

    {% load react %}
    ...
    {% react %}
    ...

8. Create a view for your template::

    from django_react_views.views import ReactDetailView
    class MyReactView(ReactDetailView):
        react_component = 'MyReactComponent.js'  # By default this will resolve to dist/app_name/{react_component}. If {% static %} can not find the file you may need to edit some other properties of this class
        model_serializer = MyModelSerializer
        model = MyModel

9. Add a url for your view::

    urlpatterns = [
        ...
        path('my-react-view/<int:pk>/', MyReactView.as_view(), name='my-react-view')
    ]

10. This framework provides window.props, which contains a javascript object that can be used to hydrate your react state. This has the shape of::

    window.props = {"objects": {"appname.modelname": {1: {object as serialized by your model serializer}} } }

11. Start the development server and visit http://127.0.0.1:8000/ and visit your page to see you're react component in action


