Select Django 模板中根据用户不同的样式表
Select different stylesheet according to user in Django template
我希望 Django (v 1.6) 根据用户加载页面加载不同的样式表。我试过类似的东西但没有成功:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title.</title>
{ % if "{{user.get_username}}" == "user1" %}
<link href="{% static 'myapp/css/user1_stle.css' %}" rel="stylesheet" media="screen">
{ % endif %}
<head>
...
Django 在源代码中呈现:
<title>Title.</title>
{ % if "user1" == "user1" %}
<link href="/myapp/css/user1_stle.css" rel="stylesheet" media="screen">
{ % endif %}
所以它加载样式表但不是基于用户名,我可以看到“{ % if ...”部分。我认为问题很明显,但我看不到。
有没有其他方法可以为每个用户加载不同的样式表?当我也使用 extends 时,该解决方案也必须有效。
编辑:修复了 space 问题,但我仍然没有得到预期的行为。似乎没有正确比较字符串(ifequal 也不起作用)
现在我在做:
{% if "{{user.username}}" == "user1" %}
<script> alert("{{user.username}}");</script>
{% else %}
<script> alert("{{user.get_username}}" + " different");</script>
{% endif %}
并且输出是一条警告,说明 user1 不同。 (与 get_username 和 ifequal 相同的结果)
最后:删除“{{ }}”并成功。
删除 {
和 %
之间的 space。同时更改 if
标签:
{% if user.get_username == "user1" %}
<link href="{% static 'myapp/css/user1_stle.css' %}" rel="stylesheet" media="screen">
{% endif %}
您的 'user.get_username' 不是字符串,而是将 result.Instead 用途字符串化的对象,{% if user.get_username|stringformat:"s" == "user1" %} 进行正确比较。
我希望 Django (v 1.6) 根据用户加载页面加载不同的样式表。我试过类似的东西但没有成功:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title.</title>
{ % if "{{user.get_username}}" == "user1" %}
<link href="{% static 'myapp/css/user1_stle.css' %}" rel="stylesheet" media="screen">
{ % endif %}
<head>
...
Django 在源代码中呈现:
<title>Title.</title>
{ % if "user1" == "user1" %}
<link href="/myapp/css/user1_stle.css" rel="stylesheet" media="screen">
{ % endif %}
所以它加载样式表但不是基于用户名,我可以看到“{ % if ...”部分。我认为问题很明显,但我看不到。
有没有其他方法可以为每个用户加载不同的样式表?当我也使用 extends 时,该解决方案也必须有效。
编辑:修复了 space 问题,但我仍然没有得到预期的行为。似乎没有正确比较字符串(ifequal 也不起作用) 现在我在做:
{% if "{{user.username}}" == "user1" %}
<script> alert("{{user.username}}");</script>
{% else %}
<script> alert("{{user.get_username}}" + " different");</script>
{% endif %}
并且输出是一条警告,说明 user1 不同。 (与 get_username 和 ifequal 相同的结果)
最后:删除“{{ }}”并成功。
删除 {
和 %
之间的 space。同时更改 if
标签:
{% if user.get_username == "user1" %}
<link href="{% static 'myapp/css/user1_stle.css' %}" rel="stylesheet" media="screen">
{% endif %}
您的 'user.get_username' 不是字符串,而是将 result.Instead 用途字符串化的对象,{% if user.get_username|stringformat:"s" == "user1" %} 进行正确比较。