A django application which can be used as a base for questionnaire functionality
Project description
django-questionnaire-core
A django application which can be used as a base / starting point for questionnaire functionality in your project. It heavily relies on django form fields & widgets and uses JSON fields to store the results.
Requirements
- Python version 3.8+
- Django version 3.2+
- django-ordered-model
- A PostgreSQL Database (optional since Django 3.2)
Quick start
-
Add "questionnaire_core" and its dependency to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ ... 'ordered_model', 'questionnaire_core', ]
-
Create a view based on
questionnaire_core.views.generic.QuestionnaireFormView
; a simple version might look like this:from django.http import HttpResponseRedirect from django.urls import reverse from django.utils.http import urlencode from questionnaire_core.models import Questionnaire, QuestionnaireResult from questionnaire_core.views.generic import QuestionnaireFormView class BasicQuestionnaireView(QuestionnaireFormView): template_name = 'basic_questionnaire.html' def get_questionnaire(self): return Questionnaire.objects.get(pk=self.kwargs.get('pk')) def get_questionnaire_result_set(self): if self.request.GET.get('result_set'): return QuestionnaireResult.objects.get(pk=self.request.GET.get('result_set')) return QuestionnaireResult(questionnaire=self.get_questionnaire()) def get_success_url(self): return reverse('basic_questionnaire', args=(self.kwargs.get('pk'),)) def form_valid(self, form): # Add current result set to the url (allows editing of the result) redirect = super().form_valid(form) url_params = urlencode({'result_set': form.current_result_set.pk}) return HttpResponseRedirect('{url}?{params}'.format(url=redirect.url, params=url_params))
-
Add the new view to your URLconf:
path('questionnaire/<int:pk>/', BasicQuestionnaireView.as_view(), name='basic_questionnaire'),
-
Run
python manage.py migrate
to create the questionnaire_core models. -
Start the development server and visit http://127.0.0.1:8000/admin/ to create a questionnaire (you'll need the Admin app enabled).
-
Visit http://127.0.0.1:8000/questionnaire/1/ to test your first questionnaire.
Development setup
-
Upgrade packaging tools:
python -m pip install --upgrade pip python -m pip install --upgrade setuptools wheel
-
Install Django (the
example_app
expects django 3.2):python -m pip install Django~=3.2.0 django-ordered-model psycopg2
-
Install tox, isort & flake8
python -m pip install tox isort flake8
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-questionnaire-core-1.4.0.tar.gz
.
File metadata
- Download URL: django-questionnaire-core-1.4.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dec082f784c713663255ee50508302e3433f5f78bfa4441080432f21ba012393 |
|
MD5 | a8a8728663e5f9f19b0d6c945770f66a |
|
BLAKE2b-256 | b0da384183f9f0da9945219b840fe6673a0c49bb63523229d080659a21ff9d86 |
File details
Details for the file django_questionnaire_core-1.4.0-py3-none-any.whl
.
File metadata
- Download URL: django_questionnaire_core-1.4.0-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 532379c42b2287b14add1dbcde528327d7778b13646ff0b8102af8b2b8afaf10 |
|
MD5 | 33378407fc6004fbb9ee004cda324841 |
|
BLAKE2b-256 | 3b36a281c9c1c98bebebf761c5978421835e5d47d13f0083297a550d48400610 |