¿Cómo hacer amigos un proyecto en rest framework con vue? Puede crear un proyecto vue en el directorio con el proyecto django usando vue-cli. Yendo a él y escribiendo hilado build, al salir nos metemos en el directorio dist archivos index.html y directorios css y js. Sí, css y js se pueden poner en estática y hacer una plantilla desde index.html.
Al agregar los subdirectorios static / frontend y templates / frontend y los archivos __init__.py y urls.py al directorio con el front (por ejemplo, lo llamamos frontend), podemos agregar frontend a INSTALLED_APPS. En urls.py, algo como
path('', TemplateView.as_view(template_name='frontend/index.html'), name='frontend-index'),
suficiente
path('', TemplateView.as_view(template_name='frontend/index.html'), name='frontend-index'),
Para que los archivos lleguen a donde debían ensamblarse, arreglamos la compilación en package.json a
"vue-cli-service build && (rm -rf static/frontend/ 2>/dev/null || true) && sed 's/=\\//=\\/static\\/frontend\\//g' dist/index.html > templates/frontend/index.html && mv dist static/frontend"
"vue-cli-service build && (rm -rf static/frontend/ 2>/dev/null || true) && sed 's/=\\//=\\/static\\/frontend\\//g' dist/index.html > templates/frontend/index.html && mv dist static/frontend"
Al mismo tiempo, arreglamos los caminos con sed.
Para automatizar todo, hice
django_vue_generator . Agrega los comandos de administración start_frontend y build_frontend. ¡Pero eso no es todo! Genera automáticamente formularios con validación en el cliente desde sus serializadores. Y crea componentes con formularios para viewset drf project. Y los componentes de la lista son los mismos para ellos. Con paginación y filtración.


La vista de lista se puede redefinir mediante ranuras.
Se incluye un proyecto de demostración con el archivo run.sh, que debe recopilar todo lo que necesita.