Django form survey is an application Django to easier create form survey and easy integrated for your project.
- Installation
- Features
- Configuration
-
Install django-form-surveys using:
pip install django-form-surveys
-
Add
djf_surveys
to yourINSTALLED_APPS
setting like thisINSTALLED_APPS = [ ... 'djf_surveys', ]
-
Add context processor
'djf_surveys.context_processors.surveys_context'
'context_processors': [ .... 'djf_surveys.context_processors.surveys_context' ],
-
Run
python manage.py migrate
to create the djf_surveys models. -
Run
python manage.py collectstatic
to collect file static djf_surveys into project. -
Include url
djf_surveys
in your root url.... urlpatterns = [ path('admin/', admin.site.urls), ..... path('surveys/', include('djf_surveys.urls')) ]
-
Access
http://127.0.0.1:8000/surveys/dashboard/
to enter admin page to create a survey. -
Access
http://127.0.0.1:8000/surveys/
get list of survey -
Access
http://127.0.0.1:8000/surveys/{id}
get form of survey
- Manage a survey: You must as superuser to manage survey
- Option config survey:
editable
: this option allows the user to edit the answerdeletable
: this option allows the user to delete the answerduplicate entry
: this option allows users to submit more than onceprivate reponse
: this option makes the answer list only visible to admincan anonymous user
: This option allows users without authentication to submit
- Support many question type (type field): Available field types include:
- Easy sorting question: You can drag and drop to sort question
- Change master template: look section
Configuration
- Duplicate entry: look section
Configuration
- Download respondent report
- Summary: You can see the survey summary in a charts. Summary just calculate type field "radio, select, multi_select, rating"
There are several configurations that you can write on settings.py
SURVEY_MASTER_TEMPLATE
,default='surveys/master.html'
, ->str
: This configuration to change master template using your template. You can set with your template path. ExampleSURVEY_MASTER_TEMPLATE = 'mywebsite/master.html'
NB: This config will be work if on your template use block content
{% block content %}
to include or render content of context from view and your master template must be including or using Tailwind CSS.SURVEY_USER_PHOTO_PROFILE
,default=''
, ->str
: This configuration is used to add a profile photo object that is related to the User model. Example:SURVEY_USER_PHOTO_PROFILE = 'self.user.profile.photo.url'
SURVEY_FIELD_VALIDATORS
, ->dict
: This configuration to override max_length of type filedemail, url, text
# default value of SURVEY_FIELD_VALIDATORS SURVEY_FIELD_VALIDATORS = { 'max_length': { 'email': 150, 'text': 250, 'url': 250 } }
# example declare in settings.py SURVEY_FIELD_VALIDATORS = { 'max_length': { 'email': 110, } }
SURVEY_PAGINATION_NUMBER
, ->dict
: This configuration to override number of paginationsurvey_list
andanswer_list
# example override in settings.py # default value 12 SURVEY_PAGINATION_NUMBER = { 'answer_list': 3, 'survey_list': 2 }
- clone project
- symlink app to
demo
ln -s [path_project_djf_survey] [path_demo_djf_survey]
- create
env
development - active
env
- enter directory
demo
- now, you can access all command
manage.py