django 樣版 列出所有 form error 的方法
{{form.non_field_errors}} ==> 列出 global error
{{ field.errors }} ==> 跟欄位有關的 error
方法一:
{% if form.errors %}
<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
{{form.non_field_errors}}
{% for field in form %}
{% if field.errors %}
<li>{{ field.label }}: {{ field.errors }}</li>
{% endif %}
{% endfor %}
</div>
{% endif %}
方法二:
{% for field, errors in form.errors.items %}
{% for error in errors %}
{{error}}
{% endfor %}
{% endfor %}
註:只帶訊息不帶 <ul> <li> 方法
form.errors.backup_email.0 (加個.0 , 取 str)
2015-06-05
2015-05-12
django compressor 找不到 offline manifest 問題解法
如果你用 django compressor,而且你用的是 offline compress
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
那麼你有可能會遇到以下錯誤訊息
這代表你的 compress tag 包夾的內容含有動態性的資料
因為 compressor 是用內容 hash 成 hash code 去 lookup cached javascript
所以 offline compress 的東西產生的 hash code 會跟你線上得到的 code 不一樣
例如以下這個例子,拿掉{{user.email}}即可正常
請確保你的 compress 是壓縮最內層、乾淨的「靜態」資料
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
那麼你有可能會遇到以下錯誤訊息
- You have offline compression enabled but key "70be2d0f8286eb3a32bfe94a55518c8f" is missing from offline manifest. You may need to run "python manage.py compress".
因為 compressor 是用內容 hash 成 hash code 去 lookup cached javascript
所以 offline compress 的東西產生的 hash code 會跟你線上得到的 code 不一樣
例如以下這個例子,拿掉{{user.email}}即可正常
- {% compress js %}
- ......
- formData.append('email', '{{ user.email }}');
- ......
- {% endcompress %}
2015-04-29
django template 樣版引擎 語法與其它工具衝突的解法
使用 {% verbatim %}
例如底下的字串 '<div><strong>{{value}}</strong> – {{year}}</div>' 中的 {{value}}, {{year}}你不想 django template解譯
你可以:
訂閱:
文章 (Atom)