Мощное Django приложение для создания и управления опросами, анкетами и тестами с поддержкой различных типов вопросов, категорий и аналитики
Project description
Django Survey
Мощное Django приложение для создания и управления опросами, анкетами и тестами с поддержкой различных типов вопросов, категорий и аналитики.
Возможности
- Создание опросов с различными типами вопросов
- Поддержка категорий вопросов
- Аналитика и статистика ответов
- Многоязычность (русский/английский)
- Интеграция с Django Admin
- REST API
- Новое: Выделение правильных ответов в формах с использованием Crispy Forms
Новые возможности
Выделение правильных ответов
Приложение теперь поддерживает отображение правильных ответов в формах с использованием Crispy Forms. Когда пользователь отвечает на вопрос с заданным правильным ответом, система:
- Показывает правильный ответ в красивом alert-блоке
- Отображает ответ пользователя для сравнения
- Использует анимации для плавного появления результатов
- Поддерживает различные типы вопросов (radio, select, multiple choice, text)
Как это работает
- Настройка вопроса: Добавьте правильный ответ в поле
correct_answerмодели Question - Отображение: После отправки формы система автоматически покажет правильный ответ
- Стилизация: Используются Bootstrap 5 классы и Font Awesome иконки
Пример использования
# Создание вопроса с правильным ответом
question = Question.objects.create(
text="Столица России?",
type=Question.RADIO,
choices="Москва, Санкт-Петербург, Новосибирск",
correct_answer="Москва",
order=1,
)
Настройка
Для работы с правильными ответами убедитесь, что у вас установлены:
[tool.poetry.dependencies]
django-crispy-forms = ">=2.4"
crispy-bootstrap5 = "^2024.2"
И добавьте в настройки Django:
INSTALLED_APPS = [
# ...
"crispy_forms",
"crispy_bootstrap5",
# ...
]
CRISPY_TEMPLATE_PACK = "bootstrap5"
CRISPY_ALLOWED_TEMPLATE_PACKS = ("bootstrap5",)
Установка
pip install django-survey-axsapronov
Быстрый старт
- Добавьте
surveyвINSTALLED_APPS - Выполните миграции:
python manage.py migrate - Создайте суперпользователя:
python manage.py createsuperuser - Запустите сервер:
python manage.py runserver
Настройка миграций
Для корректной работы миграций убедитесь, что в вашем проекте настроены следующие параметры:
Обязательные настройки
# settings.py
# Настройка для миграции 0011_survey_publish_duration
DEFAULT_SURVEY_PUBLISHING_DURATION = 7
# Рекомендуемая настройка для избежания предупреждений
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
Проверка миграций
Для проверки доступных миграций используйте:
python manage.py showmigrations survey
Для применения миграций:
python manage.py migrate survey
Устранение проблем
Если миграции не находятся при установке пакета в другом проекте:
- Убедитесь, что используется последняя версия пакета
- Проверьте, что в
INSTALLED_APPSуказано"survey" - Убедитесь, что все обязательные настройки добавлены в
settings.py
Документация
Подробная документация доступна в документации проекта.
Лицензия
AGPL-3.0
CSS Classes for Forms
The QuestionAnswerForm now supports custom CSS classes through crispy forms integration:
Available CSS Classes
.question-field- Base class for all question fields.readonly-field- Applied when the form is in read-only mode.validation-field- Applied when showing correct answers for validation
Usage Example
from survey.forms import QuestionAnswerForm
# Create a form with validation
form = QuestionAnswerForm(
question=question,
response=response,
show_correct_answer=True,
correct_answer="Correct answer here",
)
# The form will automatically apply CSS classes:
# - question-field (always applied)
# - validation-field (when show_correct_answer=True)
# - readonly-field (when read_only=True or show_correct_answer=True)
Custom Styling
You can customize the appearance by adding CSS rules:
.question-field {
margin-bottom: 1.5rem;
padding: 1rem;
border-radius: 8px;
background-color: #f8f9fa;
}
.validation-field {
border-left: 4px solid #007bff;
background-color: #f0f8ff;
}
.readonly-field {
opacity: 0.8;
pointer-events: none;
}
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_survey_axsapronov-2.0.1.tar.gz.
File metadata
- Download URL: django_survey_axsapronov-2.0.1.tar.gz
- Upload date:
- Size: 64.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0852dc832826896ca6409918c570c091ed9527bd059b7df096158aab871256cf
|
|
| MD5 |
8bd3ff10618c329ac24470bbd74ef7a6
|
|
| BLAKE2b-256 |
892fd5970d4bcac2fac0bcf479711f2e6e1e27d56f7dbc1c21b821a8e63fec19
|
File details
Details for the file django_survey_axsapronov-2.0.1-py3-none-any.whl.
File metadata
- Download URL: django_survey_axsapronov-2.0.1-py3-none-any.whl
- Upload date:
- Size: 89.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb08eae352c2bd1c8ca1492e00b2a4a081fae10607c8bd7d47c0f187a506f2cd
|
|
| MD5 |
4fe8762e034b2afbe73347acaeda0b40
|
|
| BLAKE2b-256 |
29a3b055bf476008b3719d90fd9127afb409d7e8b04f3fed5d024ac23cb6fccf
|