gpt4 book ai didi

python - 使用 Django 处理动态静态文件路径

转载 作者:行者123 更新时间:2023-11-28 04:46:59 25 4
gpt4 key购买 nike

我几乎克服了用 Django 完成我的 Theme Selector 但我在一点上阻塞:

==> 我没有根据用户给的表单结果得到一个动态的staticfiles路径。

我会解释这个过程:

用户通过选中 RadioSelect 框来填写 Django 表单。他有两个选择:

  • 数据系统
  • 喀麦隆

这两个选项对应于具有两种不同背景颜色的 2 个主题。 Datasystems 是蓝白相间的,Cameroun 是绿红相间的。

因此,我选择了与位于静态文件中的两个主题之一相对应的表单结果:

|--- app1
|--- app2
├── static
│   └── Theme
│   ├── Cameroun
│   │   ├── css
│   │   │   ├── Base.css
│   │   │   ├── Base_Accueil.css
│   │   │   ├── Base_Birthcertificate.css
│   │   │   ├── Base_Configurations.css
│   │   │   ├── Base_Identity.css
│   │   │   ├── Base_Mairie.css
│   │   │   ├── Base_Recensement.css
│   │   │   └── Base_Table.css
│   │   └── images
│   │   ├── admin.png
│   │   ├── chantier.jpeg
│   │   ├── chantier.png
│   │   ├── employe?\201.png
│   │   ├── logo.png
│   │   ├── maire.png
│   │   ├── officier.png
│   │   ├── stats.jpeg
│   │   └── visiteur.png
│   └── Datasystems
│   ├── css
│   │   ├── Base.css
│   │   ├── Base_Accueil.css
│   │   ├── Base_Birthcertificate.css
│   │   ├── Base_Configurations.css
│   │   ├── Base_Identity.css
│   │   ├── Base_Mairie.css
│   │   ├── Base_Recensement.css
│   │   └── Base_Table.css
│   └── images
│   ├── admin.png
│   ├── chantier.jpeg
│   ├── chantier.png
│   ├── employe?\201.png
│   ├── logo.png
│   ├── maire.png
│   ├── officier.png
│   ├── stats.jpeg
│   └── visiteur.png

在我的 settings.py 文件中,我有这样的静态路径:

STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "/Etat_civil/static/Theme/"),)

我正在使用 templates_tag 但我不确定我的函数是否可以这样写:

from django import template
from Configurations.models import Theme

register = template.Library()

def GetTheme(Theme):

mytheme = Theme.objects.all().last()
return mytheme in Theme.objects.all()

在我的模板中,我想将静态路径写成动态路径取决于用户选择的变量主题:

<!DOCTYPE html>
<html>
<head>

{% load staticfiles %}
{% load user_tags %}

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
{% if mytheme == 'Datasystems' %}
<link rel="stylesheet" type="text/css" href="{% static 'Datasystems/css/Base_Accueil.css' %}"/>
{% elif mytheme == 'Cameroun' %}
<link rel="stylesheet" type="text/css" href="{% static 'Cameroun/css/Base_Accueil.css' %}"/>
{% endif %}

etc ....

我有点迷路了。我认为我的过程可以很好地工作,但也许有些东西不是用 pythonic 方式或其他方式编写的。

我尽量做到简洁和具体。

提前致谢

最佳答案

您可以使用 get_static_prefix template tag半手动执行此操作:

<link rel="stylesheet" type="text/css" href="{% get_static_prefix %}{{ mytheme }}/css/Base_Accueil.css"/>

关于python - 使用 Django 处理动态静态文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42393309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com