Мой клиент хочет отредактировать css-файлы сайта с администратора django. Есть ли способ сделать это? , В принципе, они хотят, чтобы иметь возможность изменять цвет, шрифт и т. Д. Данных в интерфейсе от интерфейса администратора django.Редактировать css-файлы из django admin
ответ
Лучше всего было бы просто позволить ему отредактировать сам файл css. CSS - это, по сути, довольно гибкий инструмент, поэтому написать способ управления им довольно сложно (и действительно, перехитрить). Это уже легко подбирать, и любой красивый редактор вроде sublime или notepad++, вероятно, был бы более простым и естественным, чем все, что вы будете строить с помощью сайта администратора. Кроме того, создав простой способ управления css, ваш клиент, вероятно, начнет запрашивать все больше и больше гибкости, пока не найдет себе создание целого cms (поверьте мне, я был там сам).
Кроме того, ваш клиент, вероятно, хочет только управлять небольшими аспектами или деталями сайта. Недавно у меня был проект, в котором я разрешил своим пользователям настраивать отображение своего приложения. То, как я это делал, было создание модели UserDesign, которая расширила базовую модель пользователя и сохранила очень специфичные данные css. Что-то вроде этого:
class UserDesign(models.Model):
user = models.OneToOneField(User)
background_color = models.CharField(max_length=15)
font_color = models.CharField(max_length=20, choices=COLORS)
theme = models.CharField(max_length=20, choices=THEMES)
Значение, они не контролируют полноту CSS, но они не получают, чтобы выбрать цвет фона и некоторую другую информацию. Это очень аккуратное дополнение к любому сайту. Однако, если вы согнувшись делать это трудный путь, я бы что-то вроде этого:
class Selector(models.Model):
name = models.CharField(max_length=30)
def get_template(self):
attrs = [a.join() for a in self.attr_set.all()]
return """ %s { %s } """ % (self.name, ';'.join(attrs))
class Attr(models.Model):
key = models.CharField(max_length=30)
value = models.CharField(max_length=30)
selector = models.ForeignKey(Selector)
def join(self):
return ': '.join(self.key, self.value)
я выбрал 30 как max_length совершенно произвольно (возможно, вам нужно больше), и вы можете использовать TabularInline чтобы сделать каждый селектор простым в управлении. Тогда вы можете легко использовать различные определения CSS в шаблонах себя:
<style>
{% for selector in selectors %}
{{ selector.get_template }}
{% endfor %}
</style>
Конечно, модель выбора, вероятно, потребуется еще одно поле под названием «шаблон» или «вид» или что-то, чтобы связать его с определенным HTML файла , хотя в этот момент он быстро начинает превращаться в создание собственных cms (что, как уже упоминалось ранее, является довольно головной болью, которая не требует редактирования текстового файла, просто не оправдывает)
Третьим жизнеспособным вариантом является создание представление с помощью редактора кода и просто позвольте клиенту редактировать его css через веб-страницу. Там более чем достаточно клиентских плагинов, таких как ace или codemirror (и, конечно же, ограничивайте это представление администраторами, что очень просто сделать).
спасибо, что было полезно ... но сначала я попытаюсь убедить своего клиента не сделай это :) –
- 1. Django - Редактировать шаблоны из django admin
- 2. Редактировать .htaccess изнутри Django admin
- 3. Django Admin «Редактировать выбор» Действие?
- 4. django admin иерархическая встроенная модель редактировать
- 5. Редактировать/показать первичный ключ в Django Admin
- 6. Django admin: Как разрешить пользователям редактировать профиль?
- 7. Разрешение Редактировать для редактирования = Ложные поля в Django Admin
- 8. django admin - У вас нет разрешения редактировать что-либо
- 9. Редактировать все атрибуты всех экземпляров ForeignKey в Model Admin Django
- 10. Django - Редактировать содержимое admin без перезаписывания предыдущих данных
- 11. Django. Редактировать форму модели в popup в admin
- 12. Django admin действие, чтобы дублировать запись и редактировать ее
- 13. Django Embed Admin Form
- 14. Django - django-admin-tools
- 15. Django admin GenericForeignKey inline
- 16. Django Admin
- 17. Django admin внешний ключ
- 18. Dropdowns на Django Admin
- 19. Django contrib admin admin admin и пароль
- 20. Django admin DoesNotExist at/admin/
- 21. Magento Admin Редактировать вкладки клиента
- 22. Редактировать joomla registration admin email
- 23. Sonata Admin, редактировать объект inline
- 24. Как переопределить Django Admin
- 25. django-ckeditor to Django admin
- 26. django admin permissions - может редактировать пользователя, но не может редактировать его разрешения - как это сделать?
- 27. django редактировать и загружать изображение из шаблонов
- 28. Django - admin questions
- 29. Django: django-admin startproject ImportError
- 30. django admin action
использовать cms вместо – catherine
Да, есть способ сделать это - более одного FWIW. Теперь, что вы пробовали? –
Я googled для приложений, которые делают job.found none.please помогите ему с этим ... –