Configuration
Headless CMS Settings
The django-headless-cms package can be customized using various settings. These settings should be added to your Django project’s settings file under the HEADLESS_CMS_SETTINGS dictionary.
Here is the structure of the configuration with detailed comments explaining each setting:
# settings.py
HEADLESS_CMS_SETTINGS = {
# The class used for automatic translation of content.
# Alternative, using ChatGPT: "headless_cms.auto_translate.openai_translate.OpenAITranslate"
# You can create a translation class yourself by inheriting from BaseTranslate.
"AUTO_TRANSLATE_CLASS": "headless_cms.auto_translate.BaseTranslate",
# Preprocessing hooks for DRF Spectacular.
"CMS_DRF_SPECTACULAR_PREPROCESSING_HOOKS": [
"headless_cms.schema.preprocessing_hooks.preprocessing_filter_spec"
],
# List of terms to ignore during auto-translation.
"AUTO_TRANSLATE_IGNORES": [],
# List of fields to exclude from serialization.
"GLOBAL_EXCLUDED_SERIALIZED_FIELDS": [],
# The OpenAI model to use for chat-based translation.
# The default model is gpt-4-turbo because we find it slightly better than gpt-4.
# But you can choose any model you want here.
"OPENAI_CHAT_MODEL": "gpt-4-turbo",
# The OpenAI client to use for translation.
"OPENAI_CLIENT": "openai.OpenAI",
# The default permission class for the CMS.
"DEFAULT_CMS_PERMISSION_CLASS": "rest_framework.permissions.AllowAny",
# The host URL of the CMS.
# Normally, this is applied for localhost.
# For production, if you use django-storage, you don't need to configure this.
"CMS_HOST": "http://localhost:8000",
}
Example Configuration
Below is an example configuration that demonstrates how to customize the settings for django-headless-cms:
# settings.py
HEADLESS_CMS_SETTINGS = {
"AUTO_TRANSLATE_CLASS": (
"headless_cms.auto_translate.openai_translate.OpenAITranslate"
),
"AUTO_TRANSLATE_IGNORES": [
"Astro",
"Astrowind",
"Tailwind CSS",
],
"OPENAI_CHAT_MODEL": "gpt-4",
"DEFAULT_CMS_PERMISSION_CLASS": "rest_framework_api_key.permissions.HasAPIKey",
}