久しぶりにamazonに発注してしまった。
書籍、現物あり。
2時すぎにはコンビニからの入金が確認できたとさ。
さあ、いつ来ることやら。
ワクワクドキドキ。
これで遅ければ、ジュクドウさん、まだまだチャンスありまっせ。
P.S. 9/30.13時についた。
翌々日ですた。
2011年9月28日水曜日
2011年9月10日土曜日
formでselectを書き換え禁止
class Metaでwidgetsに適切なものを指定して、そのwidgetsが生成するhtml tagの属性をattrsに辞書で渡す。というわけやね。
追記:
class Hoge(ModelForm):True要らないけれど、attrsが辞書なので。
class Meta:
model = Foo
widgets = {'choice': forms.Select(attrs={'disabled': True,}),}
追記:
form = Hoge()でもOK
form.fields['choice'].widget.attrs['disabled'] = True
2011年9月6日火曜日
permission name取得
auth->groupでもいいけれど
python shell
>>> from django.contrib.auth.models import Permission
>>> for item in Permission.objects.all():
... print item.name
...
Can add log entry
...
て思っていたけれど。@permission_requiredが引くのはcodenameですた。
×... print item.name
○ ... print item.codename
それと、 permission_requiredで引けるのは、1個だけ。
でも複数のがほしいよな。add, change, delete単体でpermission与えるのより、全部与えるほうが多いような気がする。
えっ。作れって、そうさせて頂きます。
と思ったら。似たようなのがここにあった。
ということで、
python shell
>>> from django.contrib.auth.models import Permission
>>> for item in Permission.objects.all():
... print item.name
...
Can add log entry
...
て思っていたけれど。@permission_requiredが引くのはcodenameですた。
×... print item.name
○ ... print item.codename
それと、 permission_requiredで引けるのは、1個だけ。
でも複数のがほしいよな。add, change, delete単体でpermission与えるのより、全部与えるほうが多いような気がする。
えっ。作れって、そうさせて頂きます。
と思ったら。似たようなのがここにあった。
ということで、
#-*- coding:utf-8 -*-
from django.contrib.auth.decorators import user_passes_test
def require_all_permissions(perm_list):
"""
A decorator which checks user has all of the given permissions.
"""
def test_func(user):
return user.has_perms(perm_list)
return user_passes_test(test_func)どうでしょう。
django 初期のパーミッション
忘れないように初期のパーミッション
admin | log entry | Can add log entry
admin | log entry | Can change log entry
admin | log entry | Can delete log entry
auth | group | Can add group
auth | group | Can change group
auth | group | Can delete group
auth | message | Can add message
auth | message | Can change message
auth | message | Can delete message
auth | permission | Can add permission
auth | permission | Can change permission
auth | permission | Can delete permission
auth | user | Can add user
auth | user | Can change user
auth | user | Can delete user
contenttypes | content type | Can add content type
contenttypes | content type | Can change content type
contenttypes | content type | Can delete content type
sessions | session | Can add session
sessions | session | Can change session
sessions | session | Can delete session
sites | site | Can add site
sites | site | Can change site
sites | site | Can delete site
2011年9月5日月曜日
suckerfishでdropdownメニュー
ここから。
肝は、hoverしていないulを明後日の方に配置するということだけ。
hoverしたらulをもとの位置に戻す。
横メニューなら
肝は、hoverしていないulを明後日の方に配置するということだけ。
hoverしたらulをもとの位置に戻す。
横メニューなら
<html>に対して
<head>
<title>horizontal nav</title>
<meta charset="utf-8">
<link rel=stylesheet type="text/css" href="horizontalMenu.css">
</head>
<body>
<div id="menu">
<ul>
<li><a href="">test11</a></li>
<li>second
<ul>
<li><a href="">test21</a></li>
<li><a href="">test22</a></li>
<li>third
<ul>
<li><a href="">test31</a></li>
<li><a href="">test32</a></li>
<li><a href="">test33</a></li>
</ul>
</li>
<li><a href="">test23</a></li>
</ul>
</li>
<li><a href="">test12</a></li>
<li><a href="">test13</a></li>
</ul>
</div>
</body>
</html>
#menu ul{もしくは
margin: 0px;
padding: 0px;
list-style: none;
float: left;
}
#menu li{
margin: 0px;
padding: 0px;
border: 1px solid;
display: block;
color: black;
background-color: white;
display: block;
}
#menu li:hover{
color: white;
background-color: black;
}
#menu > ul > li{
float: left;
}
#menu ul > li > ul{
position: absolute;
left: -999em;
}
#menu ul > li:hover > ul{
left: auto;
}
#menu ul > li > ul > li{
width: 10em;
}
#menu ul > li > ul > li:hover > ul{
margin-top: -1.1em;
margin-left: 10em;
}
#menu ul{垂直メニューなら
margin: 0px;
padding: 0px;
list-style: none;
float: left;
}
#menu li{
margin: 0px;
padding: 0px;
border: 1px solid;
display: block;
color: black;
background-color: white;
display: block;
}
#menu li:hover{
color: white;
background-color: black;
}
#menu > ul > li{
float: left;
}
#menu ul > li > ul{
position: absolute;
display: none;
}
#menu ul > li:hover > ul{
display: block;
}
#menu ul > li > ul > li{
width: 10em;
}
#menu ul > li > ul > li:hover > ul{
margin-top: -1.1em;
margin-left: 10em;
}
#menu ul{もしくは
margin: 0px;
padding: 0px;
width: 10em;
list-style: none;
float: left;
}
#menu li{
margin: 0px;
padding: 0px;
width: 10em;
border: 1px solid;
position: relative;
float: left;
color: black;
background-color: white;
display: block;
}
#menu li:hover{
color: white;
background-color: black;
}
#menu li > ul{
margin-top: -1.3em;
margin-left: 10em;
position: absolute;
left: -999em;
}
#menu li:hover > ul{
left: auto;
}
#menu ul{
margin: 0px;
padding: 0px;
width: 10em;
list-style: none;
float: left;
}
#menu li{
margin: 0px;
padding: 0px;
width: 10em;
border: 1px solid;
position: relative;
float: left;
color: black;
background-color: white;
display: block;
}
#menu li:hover{
color: white;
background-color: black;
}
#menu li > ul{
margin-top: -1.3em;
margin-left: 10em;
position: absolute;
display: none;
}
#menu li:hover > ul{
display: block;
}
登録:
投稿 (Atom)