スキップしてメイン コンテンツに移動

インターン(その2)

豊橋技術科学大学の近藤です。

前回に引き続き、AdminSiteのオーバーライドに関して
まとめてみます。

基本的にはModelAdminのオーバーライドと同様に、

if perms.get('change', False):
  try:
    model_dict['admin_url'] = reverse('autoview:%s_%s_changelist' % info, current_app=self.name)
  except NoReverseMatch:
    pass

このようにページ名を変更していけばOKでした。
(前回は付け忘れていましたが、autoviewという名前空間をつけました)

オーバーライドし、ページ名を変更する関数は、
  • __init__
  • register
  • index
  • app_index
さらに、全ユーザに権限を与えるため、has_permissionの
オーバーライドを行います。

これによりadminサイトと同様に、 urls.pyのurlpatternsに

url(r'^autoview/', include(autoview.urls)),

を追加し、

使用したいモデルをadmin.site.registerのように、

autoview.register(Hoge)

とすれば、使用できました。

もちろんAdminのようにリストに表示したいものを
list_displayに登録することで変えることも可能です。


ただ、このままではAdminサイトの更新履歴と同じデータベースを
利用しているので、その点を修正する方法について
次回の記事にまとめようと思います。




コメント

このブログの人気の投稿

はじめまして!

はじめまして!
株式会社MNUで新しくブログを始めます。
主に、プログラムに関する技術的なことを中心に社員が持ち回りで書いていきます。
皆様のお役に立てれば幸いです。

どうぞ、これからよろしくお願いします。


ここから下はコードを表示するサンプルです。

int x = foo(); /* This is a comment This is not code Continuation of comment */ int y = bar(); // This is line 4. foo(); bar(); baz(); boo(); far(); faz(); shfor target do WORKDIR=$(mktemp -d "$EXTRACTHOMEDIR"/XXXXXX) case "$target" in *.[Tt][Gg][Zz]|*.[Tt][Aa][Rr].[Gg][Zz]|*.[Tt][Aa][Rr].[Zz]) tar vzxf "$target" -C "$WORKDIR" move_to_currentpath "$WORKDIR" "$target" ;; *.[Tt][Bb][Zz]|*.[Tt][Aa][Rr].[Bb][Zz]2) tar vjxf "$target" -C "$WORKDIR" move_to_currentpath "$WORKDIR" "$target" ;; *.[Gg][Zz]) gzip -d "$target" move_to_currentpath "$WORKDIR" "$target" ;; *.[Zz][Ii][Pp]|*.[JjWw][Aa][Rr]) check_required_program unzip /usr/p…

液晶ディスプレイのパネル構造に関する特許を取得しました

はじめまして、MNUの伊東です。
先日、液晶ディスプレイのパネル構造に関する特許を出願し、無事審査を通りましたのでこれからそれに関する技術的ポイントについて記載して参りたいと思います。

インターン(その5) Slack Bot 作成まとめ2

豊橋技術科学大学の近藤です。

昨日のSlackBotまとめに足りない点があるので、
別にまとめます。

1. API Tokenの取得https://api.slack.com/webから取得するのは、ユーザのTokenでした。
Bot用のトークンを取得する方法は、
Configure Integrations(左チーム名のドロップダウン)
 -> Bots を Add(下の方)
   -> デフォルトの名前を決定する
     -> API Token 
でした。
2. Markdownを使う mrkdwnをTrueにする。
data = { 'text': '``` print(`hoge`) ```', 'mrkdwn': True, 'attachments': [attachment, ], } attachments内では、mrkdwn_inにキーを記述
attachment = { 'fallback': 'fuga', # attachmentsの表示ができない端末用の文字列 'pretext': 'piyo', # attachmentの上にtextと同じように出力 'title': 'タイトル', 'text' : '*hogehoge*',  'fields': [field, ], 'mrkdwn_in': ["pretext", "text", "title", "fields", "fallback"], } mrkdwn_inに記述できるのは5種類。
3. URLの記述 URLを記述する際は '<' , '>' を使うといいらしい。
ただ、使わなくてもリンクを張ってくれる。
ただ、
'text': '[ <http: www.youtube.com|ようつべ> ]', とすると、
[