import os import sys from pathlib import Path import django.core.management from django import setup from django.contrib.staticfiles.management.commands.collectstatic import Command from hatchling.builders.hooks.plugin.interface import BuildHookInterface class DjangoCollectstaticBuildHook(BuildHookInterface): PLUGIN_NAME = "django-collectstatic" def initialize(self, version, build_data): sys.path.extend( str(Path(package).parent) for package in self.build_config.default_packages() ) os.environ["DJANGO_SETTINGS_MODULE"] = self.config["settings"] setup() django.core.management.call_command(Command())