Я хочу динамически создать файл css для моего сайта, который обновляется при загрузке новых элементов навигации. Я знаю, что мне нужно переопределить сохранение моей модели навигации, и после того, как файл был загружен на мой s3, я могу затем вызвать функцию для выполнения какого-либо действия, но я не знаю, как я могу создать файл динамически, а затем загрузить это на тот же сервер s3, но в другом месте.
from django.db import models
from django.forms import CheckboxSelectMultiple
import tempfile
from django.conf import settings
from django.core.files.base import ContentFile
from django.core.files.storage import default_storage as s3_storage
from django.core.cache import cache
from datetime import datetime
import Image, os
import PIL.Image as PIL
import re, os, sys, urlparse
def createDynamicCSS():
#create then save a css file here
#probably best to 'navigation/nav.css'
#loop through all entries and create class for all of them
navs = PrimaryNav.all()
cssfile = ""
for n in navs:
string = "." + n.slug + " { ... }"
cssfile += string
#save cssfile to s3
class PrimaryNav(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(max_length=200)
active = models.BooleanField()
#saves to s3 (s3 address + /icon/ )
icon = models.ImageField(upload_to='icons')
def save(self):
super(PrimaryNav, self).save() # Call the "real" save() method
createDynamicCSS()
...
Я не уверен, с чего начать. Я собирался попробовать и разобрать функции CSV, которые я видел в Интернете, но это оказалось слишком сложно. Помогите пожалуйста