Index ソフト・ハード Djangoタスク | templateサンプル |
project01 accounts create_confirm profile accounts/registration change create logged_out login password_change_done password_change_form admin base.html base_site.html index.html login.html base base pagination sidebar top search result thread category confirm_topic create_topic detail_topic tags/category_tag mail/topic_mail |
project01 accounts create_confirm.html
{% extends 'base/base.html' %}
{% block title %}せっかくだから{{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a class="active section">ユーザー作成</a>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>ユーザー作成</h3></div>
<table class="ui celled table table table-hover" >
<tr><td>お名前</td><td>{{form.cleaned_data.username}}</td></tr>
<tr><td>メールアドレス</td><td>{{form.cleaned_data.email}}</td></tr>
<tr><td>パスワード</td><td>********</td></tr>
</table>
<form class="ui form" action="" method="POST">
{% csrf_token %}
{% for field in form %}
{{field.as_hidden}}
{% endfor %}
<button class="ui button" name="next" value="back" type="submit">修正</button>
<button class="ui orange button" name="next" value="regist" type="submit">登録</button>
</form>
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
profile.html
{% extends 'base/base.html' %}
{% block title %}せっかくだから{{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a class="active section">ユーザー情報</a>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>ユーザー情報</h3></div>
<div class="ui divided bulleted list">
<div class="item">ログインID:{{user.username}}</div>
<div class="item">E-mail:{% if user.email %}{{user.email}}{% else %}未設定{% endif %}</div>
</div>
</div>
</div>
<a class="ui button" href="{% url 'accounts:change' %}">登録情報変更</a>
<a class="ui button" href="{% url 'accounts:password_change' %}">パスワード変更</a>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
registration change.html
{% extends 'base/base.html' %}
{% block title %}ITについて切磋琢磨する掲示板 - {{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a href="{% url 'accounts:profile' %}" class="section">プロフィール</a>
<i class="right angle icon divider"></i>
<div class="active section">ユーザー情報の変更</div>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>ユーザー情報の変更</h3></div>
<form class="ui form" action="" method="POST">
{% csrf_token %}
{{form.as_p}}
<button class="ui orange button" type="submit">確認</button>
</form>
</div>
</div>
<a href="{% url 'accounts:profile' %}">プロフィールに戻る</a>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
create.html
{% extends 'base/base.html' %}
{% block title %}せっかくだから{{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a class="active section">ユーザー作成</a>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>ユーザー作成</h3></div>
<form class="ui form" action="" method="POST">
{% csrf_token %}
{{form.as_p}}
<button class="ui orange button" name="next" value="confirm" type="submit">確認</button>
</form>
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
logged_out.html
{% extends 'base/base.html' %}
{% block title %}せっかくだから{{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a class="active section">ログアウト完了</a>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>ログアウトしました。</h3></div>
<p><a href="{% url 'base:top' %}">TOPへ戻る</a></p>
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
login.html
{% extends 'base/base.html' %}
{% block title %}せっかくだから{{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a class="active section">ログイン</a>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>ログイン</h3></div>
<form class="ui form" action="" method="POST">
{% csrf_token %}
{{form.as_p}}
<button class="ui orange button" type="submit">ログイン</button>
</form>
</div>
</div>
<a class="ui item" href="{% url 'accounts:create' %}">ユーザー登録</a>/
<a class="ui item" href="{% url 'accounts:password_reset' %}">パスワードを忘れた場合</a>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
password_change_done.html
{% extends 'base/base.html' %}
{% block title %}せっかくだから{{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a class="section" href="{% url 'base:top' %}">TOP</a>
<i class="right angle icon divider"></i>
<a class="section" href="{% url 'accounts:profile' %}">プロフィール</a>
<i class="right angle icon divider"></i>
<div class="active section">パスワード変更</div>
</div>
<div class="ui segment">
<div class="content">
<div class="content">
<div class="header"><h3>パスワード変更しました</h3></div>
<a href="{% url 'accounts:profile' %}">プロフィールに戻る</a>
</div>
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
password_change_form.html
{% extends 'base/base.html' %}
{% block title %}せっかくだから{{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a class="section" href="{% url 'base:top' %}">TOP</a>
<i class="right angle icon divider"></i>
<div class="active section">パスワード変更</div>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>パスワード変更</h3></div>
<form class="ui form" method="POST" action="">
{% csrf_token %}
{{form.as_p}}
<button type="submit" class="ui orange button">変更する</button>
</form>
</div>
</div>
<a href="{% url 'accounts:profile' %}">プロフィールに戻る</a>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
admin django/contrib/admin/templates/admin/base.html
{% load i18n static %}<!DOCTYPE html>
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" dir="{{ LANGUAGE_BIDI|yesno:'rtl,ltr,auto' }}">
<head>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}">
{% if not is_popup and is_nav_sidebar_enabled %}
<link rel="stylesheet" type="text/css" href="{% static "admin/css/nav_sidebar.css" %}">
<script src="{% static 'admin/js/nav_sidebar.js' %}" defer></script>
{% endif %}
{% block extrastyle %}{% endblock %}
{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}">{% endif %}
{% block extrahead %}{% endblock %}
{% block responsive %}
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
<link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive.css" %}">
{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% static "admin/css/responsive_rtl.css" %}">{% endif %}
{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE">{% endblock %}
</head>
{% load i18n %}
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}"
data-admin-utc-offset="{% now "Z" %}">
<!-- Container -->
<div id="container">
{% if not is_popup %}
<!-- Header -->
<div id="header">
<div id="branding">
{% block branding %}{% endblock %}
</div>
{% block usertools %}
{% if has_permission %}
<div id="user-tools">
{% block welcome-msg %}
{% translate 'Welcome,' %}
<strong>{% firstof user.get_short_name user.get_username %}</strong>.
{% endblock %}
{% block userlinks %}
{% if site_url %}
<a href="{{ site_url }}">{% translate 'View site' %}</a> /
{% endif %}
{% if user.is_active and user.is_staff %}
{% url 'django-admindocs-docroot' as docsroot %}
{% if docsroot %}
<a href="{{ docsroot }}">{% translate 'Documentation' %}</a> /
{% endif %}
{% endif %}
{% if user.has_usable_password %}
<a href="{% url 'admin:password_change' %}">{% translate 'Change password' %}</a> /
{% endif %}
<a href="{% url 'admin:logout' %}">{% translate 'Log out' %}</a>
{% endblock %}
</div>
{% endif %}
{% endblock %}
{% block nav-global %}{% endblock %}
</div>
<!-- END Header -->
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
{% if title %} › {{ title }}{% endif %}
</div>
{% endblock %}
{% endif %}
<div class="main shifted" id="main">
{% if not is_popup and is_nav_sidebar_enabled %}
{% block nav-sidebar %}
{% include "admin/nav_sidebar.html" %}
{% endblock %}
{% endif %}
<div class="content">
{% block messages %}
{% if messages %}
<ul class="messagelist">{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message|capfirst }}</li>
{% endfor %}</ul>
{% endif %}
{% endblock messages %}
<!-- Content -->
<div id="content" class="{% block coltype %}colM{% endblock %}">
{% block pretitle %}{% endblock %}
{% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
{% block content_subtitle %}{% if subtitle %}<h2>{{ subtitle }}</h2>{% endif %}{% endblock %}
{% block content %}
{% block object-tools %}{% endblock %}
{{ content }}
{% endblock %}
{% block sidebar %}{% endblock %}
<br class="clear">
</div>
<!-- END Content -->
{% block footer %}<div id="footer"></div>{% endblock %}
</div>
</div>
</div>
<!-- END Container -->
</body>
</html>
django/contrib/admin/templates/admin/base_site.html
{% extends "admin/base.html" %}
{% block title %}{% if subtitle %}{{ subtitle }} | {% endif %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}
{% block nav-global %}{% endblock %}
django/contrib/admin/templates/admin/index.html
{% extends "admin/base_site.html" %}
{% load i18n static %}
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/dashboard.css" %}">{% endblock %}
{% block coltype %}colMS{% endblock %}
{% block bodyclass %}{{ block.super }} dashboard{% endblock %}
{% block breadcrumbs %}{% endblock %}
{% block nav-sidebar %}{% endblock %}
{% block content %}
<div id="content-main">
{% include "admin/app_list.html" with app_list=app_list show_changelinks=True %}
</div>
{% endblock %}
{% block sidebar %}
<div id="content-related">
<div class="module" id="recent-actions-module">
<h2>{% translate 'Recent actions' %}</h2>
<h3>{% translate 'My actions' %}</h3>
{% load log %}
{% get_admin_log 10 as admin_log for_user user %}
{% if not admin_log %}
<p>{% translate 'None available' %}</p>
{% else %}
<ul class="actionlist">
{% for entry in admin_log %}
<li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
{% if entry.is_deletion or not entry.get_admin_url %}
{{ entry.object_repr }}
{% else %}
<a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
{% endif %}
<br>
{% if entry.content_type %}
<span class="mini quiet">{% filter capfirst %}{{ entry.content_type.name }}{% endfilter %}</span>
{% else %}
<span class="mini quiet">{% translate 'Unknown content' %}</span>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
{% endblock %}
django/contrib/admin/templates/admin/login.html
{% <a href="../kouseiHousiki.html#テンプレートを拡張">extends</a> "admin/base_site.html" %}
{% load i18n static %}
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/login.css" %}">
{{ form.media }}
{% endblock %}
{% block bodyclass %}{{ block.super }} login{% endblock %}
{% block usertools %}{% endblock %}
{% block nav-global %}{% endblock %}
{% block nav-sidebar %}{% endblock %}
{% block content_title %}{% endblock %}
{% block breadcrumbs %}{% endblock %}
{% block content %}
{% if form.errors and not form.non_field_errors %}
<p class="errornote">
{% if form.errors.items|length == 1 %}{% translate "Please correct the error below." %}{% else %}{% translate "Please correct the errors below." %}{% endif %}
</p>
{% endif %}
{% if form.non_field_errors %}
{% for error in form.non_field_errors %}
<p class="errornote">
{{ error }}
</p>
{% endfor %}
{% endif %}
<div id="content-main">
{% if user.is_authenticated %}
<p class="errornote">
{% blocktranslate trimmed %}
You are authenticated as {{ username }}, but are not authorized to
access this page. Would you like to login to a different account?
{% endblocktranslate %}
</p>
{% endif %}
<form action="{{ app_path }}" method="post" id="login-form">{% csrf_token %}
<div class="form-row">
{{ form.username.errors }}
{{ form.username.label_tag }} {{ form.username }}
</div>
<div class="form-row">
{{ form.password.errors }}
{{ form.password.label_tag }} {{ form.password }}
<input type="hidden" name="next" value="{{ next }}">
</div>
{% url 'admin_password_reset' as password_reset_url %}
{% if password_reset_url %}
<div class="password-reset-link">
<a href="{{ password_reset_url }}">{% translate 'Forgotten your password or username?' %}</a>
</div>
{% endif %}
<div class="submit-row">
<input type="submit" value="{% translate 'Log in' %}">
</div>
</form>
</div>
{% endblock %}
</code>
base base.html
{% load static %}
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta http-equiv="content-language" content="ja">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
{% block meta_tag %}{% endblock %}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css">
<title>
{% block title %}せっかくだから{% endblock %}
</title>
</head>
<body>
<div class="ui stackable inverted menu">
<div class="header item">
せっかくだから
</div>
<a class="item">
いろいろと
</a>
<div class="right menu">
{% if user.is_authenticated %}
<a class="item" href="{% url 'accounts:profile' %}">ユーザー情報</a>
<a class="item" href="{% url 'accounts:logout' %}">ログアウト</a>
{% else %}
<a class="item" href="{% url 'accounts:login' %}">ログイン</a>
<a class="item" href="{% url 'accounts:create' %}">ユーザー登録</a>
{% endif %}
</div>
</div>
<div class="ui container" style="min-height:100vh;">
{% block content %}
{% endblock %}
</div>
<div class="ui inverted stackable footer segment">
<div class="ui container center aligned">
<div class="ui horizontal inverted small divided link list">
<a class="item">c 2022 せっかくだから</a>
<a class="item">利用規約</a>
<a class="item">プライバシーポリシー</a>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
{% block js %}{% endblock %}
pagination.html
{% if is_paginated %}
<div class="ui basic segment center aligned">
<div class="ui pagination menu">
<!--左矢印-->
{% if page_obj.has_previous %}
<a class="item" href="?p={{page_obj.previous_page_number}}"><i class="chevron left icon"></i></a>
{% else %}
<a class="disabled item"><i class="chevron left icon"></i></a>
{% endif %}
<!--ページ番号-->
{% for link_page in page_obj.paginator.page_range %}
{% if link_page == page_obj.number %}
<a class="disabled item">{{link_page}}</a>
{% else %}
<a class="item" href="?p={{link_page}}">{{link_page}}</a>
{% endif %}
{% endfor %}
<!--右矢印-->
{% if page_obj.has_next %}
<a class="item" href="?p={{page_obj.next_page_number}}"><i class="chevron right icon"></i></a>
{% else %}
<a class="disabled item"><i class="chevron right icon"></i></a>
{% endif %}
</div>
</div>
{% endif %}
sidebar.html
{% load threadtags %}
<div class="five wide column">
<form action="{% url 'search:result' %}" method="GET">
<div class="ui action input" style="width: 100%;">
<input type="text" placeholder="検索" name="q">
<button type="submit" class="ui button"><i class="search icon"></i></button>
</div>
</form>
<div class="ui items">
<div class="item">
<a href="{% url 'thread:create_topic' %}" class="ui fluid teal button">トピックを作成</a>
</div>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h4>カテゴリー</h4></div>
{% categorytag %}
</div>
</div>
</div>
top.html
{% extends 'base/base.html' %}
{% block title %}掲示板{{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
TOP
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>新着</h3></div>
<div class="ui divided items">
{% for topic in topic_list %}
<div class="item">
<div class="content">
<div class="header">
<a href="{% url 'thread:topic' pk=topic.id %}"><h4>{{topic.title}}</h4></a>
</div>
<div class="meta">
<span class="name">{{topic.user_name}}</span>
<span class="date">{{topic.created}}</span>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
search result.html
{% extends 'base/base.html' %}
{% block title %}検索結果 - {{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a class="active section">検索結果</a>
</div>
<iv class="ui segment">
<div class="content">
<div class="header"><h3>検索結果</h3></div>
<form action="{% url 'search:result' %}" method="GET">
<div class="ui action input" style="width: 100%;">
<input type="text" placeholder="検索" value="{{query}}" name="q">
<button class="ui button"><i class="search icon"></i></button>
</div>
</form>
{% if result_list %}
{% for result in result_list %}
<div class="ui segment message">
<h3><a href="{% url 'thread:topic' pk=result.id %}">{{result.title}}</a></h3>
<p>{{result.message | truncatewords:30}}</p>
</div>
{% endfor %}
{% else %}
<div class="ui segment warning message">
<p>検索結果はありません。</p>
</div>
{% endif %}
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
thread thread/category.html
{% extends 'base/base.html' %}
{% block title %}{{category.name}} - {{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a class="section">TOP</a>
<a class="active section">{{category.name}}</a>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>{{category.name}}</h3></div>
<div class="ui divided items">
{% if topic_list %}
{% for topic in topic_list %}
<div class="item">
<div class="content">
<div class="header">
<a href="{% url 'thread:topic' pk=topic.id %}"><h4>{{topic.title}}</h4></a>
</div>
<div class="meta">
<span class="name">{{topic.user_name}}</span>
<span class="date">{{topic.created}}</span>
</div>
</div>
</div>
{% endfor %}
{% else %}
<div class="ui warning message">トピックが存在しません。</div>
{% endif %}
</div>
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
thread/confirm_topic.html
{% extends 'base/base.html' %}
{% block title %}トピック作成 - {{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a class="active section">トピック作成</a>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>トピック作成</h3></div>
<p>内容を確認してください</p>
<table class="ui celled table table table-hover" >
<tr><td>タイトル</td><td>{{form.title.value}}</td></tr>
{% if user.is_authenticated %}
<tr><td>お名前</td><td>{{user.username}}</td></tr>
{% else %}
<tr><td>ゲスト名</td><td>{{form.cleaned_data.user_name}}</td></tr>
{% endif %}
<tr><td>カテゴリー</td><td>{{form.cleaned_data.category}}</td></tr>
<tr><td>本文</td><td><pre>{{form.message.value}}</pre></td></tr>
</table>
<form class="ui form" action="{% url 'thread:create_topic' %}" method="POST">
{% csrf_token %}
{% for field in form %}
{{field.as_hidden}}
{% endfor %}
<button class="ui button grey" type="submit" name="next" value="back">戻る</button>
<button class="ui button orange" type="submit" name="next" value="create">作成</button>
</form>
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
thread/create_topic.html
{% extends 'base/base.html' %}
{% block title %}トピック作成 - {{ block.super }}{% endblock %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a class="active section">トピック作成</a>
<div class="header"><h3>トピック作成</h3></div>
{% if not user.is_authenticated %}
<div class="ui warning message">
<p>ゲストユーザーでスレッド作成しますか?ログインする場合は以下のボタンでログインして下さい。</p>
<a class="ui button orange" href="/project01/accounts/login?next=/thread/create_topic/">ログイン</a>
</div>
{% endif %}
<form class="ui form" action="{% url 'thread:create_topic' %}" method="POST">
{% csrf_token %}
<!-- {{form.as_p}} // 一括で取り出す(フォーム内容が全て表示、動作確認に有効)-->
{% for field in form %}
<div class="field">{{field.label_tag}}{{field}}</div>
{% for error in field.errors%}
<p style="color: red;">{{error}}</p>
{% endfor%}
{% endfor %}
<button type="submit" class="ui button" name="next" value="confirm">作成</button>
</form>
</div>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
thread/detail_topic.html
{% extends 'base/base.html' %}
{% block title %}トピック作成 - {{ block.super }}{% endblock %}
{% load threadfilters %}
{% load static %}
{% block content %}
<div class="ui grid stackable">
<div class="eleven wide column">
<div class="ui breadcrumb">
<a href="{% url 'base:top' %}" class="section">TOP</a>
<i class="right angle icon divider"></i>
<a href="{% url 'thread:category' url_code=topic.category.url_code %}" class="section">{{topic.category.name}}</a>
<i class="right angle icon divider"></i>
<a class="active section">{{topic.title}}</a>
</div>
<div class="ui segment">
<div class="content">
<div class="header"><h3>{{topic.title}}</h3></div>
<p>{% if topic.user %}{{topic.user}}{% else %}{{topic.user_name}}(Guest){% endif %} - {{topic.created}}</p>
<div class="ui segment">
<p><pre>{{topic.message}}</pre></p>
</div>
</div>
</div>
<!--コメント表示-->
<div class="ui segment">
{% if comment_list %}
{% for comment in comment_list %}
<div class="ui segment secondary">
<p>{{comment.no}}. {% if comment.user %}{{comment.user.username}}{% else %}{{comment.user_name}}(Guest){% endif %}
<br>{{comment.created}}</p>
{% if comment.pub_flg %}
<p>{{comment.message | comment_filter | safe}}</p>
{% if comment.image %}
<a href="{{comment.image.url}}" target="_blank" rel="noopener noreferrer"><img src="{{comment.image.url}}" width=200px></a>
{% endif %}
<div class="ui right aligned vertical segment">
<div class="vote_button" style="cursor: pointer;"
data-comment-id="{{comment.id}}" data-count="{{comment.vote_count}}">
<i class="heart outline icon"></i>
<span class="vote_counter">
{% if comment.vote_count > 0 %}{{comment.vote_count}}{% endif %}
</span>
</div>
</div>
{% else %}
<p style="color: grey">コメントは非表示とされました</p>
{% endif %}
</div>
{% endfor %}
{% else %}
<div class="ui warning message"><p>まだコメントはありません</p></div>
{% endif %}
</div>
<h4>コメント投稿</h4>
{% if not user.is_authenticated %}
<div class="ui warning message">
<p>ゲストユーザーで投稿しますか?ログインする場合は以下のボタンでログインして下さい。</p>
<a class="ui button orange" href="/accounts/login?next=/thread/{{topic.id}}/">ログイン</a>
</div>
{% endif %}
<div class="ui segment">
<form class="ui form" action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.as_p}}
<button class="ui button orange" type="submit">コメント投稿</button>
</form>
</div>
</div>
{% include 'base/sidebar.html' %}
</div>
{% endblock %}
{% block js %}
<script src="{% static 'thread/js/vote.js' %}" type='text/javascript'></script>
{% endblock %}
thread/tags/category_tag.html
<div class="ui relaxed list small divided link">
{% for category in category_list %}
<a class="item">{{category.name}}({{category.count}})</a>
{% endfor %}
</div>
thread/mail/topic_mail.html
以下のトピックが登録されました。
---------------------
タイトル: {{title}}
ユーザー名: {{user_name}}
本文:
{{message}}
|
All Rights Reserved. Copyright (C) ITCL |