Список статей
Вы не вошли в кабинет
Статьи
Пример статьиЭто вторая статья
Это последняя по сроку статья
Тестирование ошибки
Ваш IP адрес: 54.81.185.66
Модуль models.py
# coding: utf-8
from django.db import models
class PressRelease(models.Model):
title = models.CharField(max_length=120)
body = models.TextField()
pub_date = models.DateTimeField()
author = models.CharField(max_length=120)
class Meta:
db_table = 'app_context_press_releases'
get_latest_by = 'pub_date' # получение последнего объекта выполняется по полю pub_date
def get_absolute_url(self):
return '../details/%d' % self.id
def __unicode__(self):
return self.title
Модуль views.py
# coding: utf-8
from django.http import HttpResponse, HttpResponseNotFound, HttpResponseServerError
from context.models import PressRelease
from django.shortcuts import get_object_or_404, get_list_or_404
from django.template import Context, Template, loader, RequestContext
from django.template.loader import render_to_string
from django.shortcuts import render_to_response
# Так много импортов из за того, что было много экспериментов.
# Эксперименты не показываю. Если интересно, советую прослушать соответствующий курс
def my_test(request):
c = Context(addtest())
t = loader.get_template('my_test.html')
template_art = t.render(c)
return HttpResponse(template_art) # вернуть
def press_list(request):
pl = get_list_or_404(PressRelease)
t = loader.get_template("list.html")
c = RequestContext(request, {'press_list': pl})
return HttpResponse(t.render(c))
def details(request, art2id):
p = get_object_or_404(PressRelease, id=art2id)
c = RequestContext(request, {'press': p})
return render_to_response("details.html", c)
Модуль context_processors.py
# coding: utf-8
def my_ip(request):
"""
Отображает IP адрес посетителя
:param request:
:return:
"""
return {'my_ip_address': request.META['REMOTE_ADDR']}
Модуль urls.py
# coding: utf-8
from django.conf.urls import url
from context.views import details, press_list, latest, fav_color
urlpatterns = [
url(r'^details/(?P<art2id>\d+)/$', details),
url(r'^list/$', press_list),
url(r'^latest/$', latest)
]
Шаблон list.html
{% extends 'base.html' %}
{% block content %}
<hr>
{% if user.is_anonymous %}
Вы не вошли в кабинет
{% else %}
Вы вошли как: {{ user.email }}
{% endif %}
<hr>
<h1>Статьи</h1>
{% for press in press_list %}
<a href="{{ press.get_absolute_url }}">{{ press.title }}</a><br>
{% endfor %}
<hr>Ваш IP адрес: {{ my_ip_address }}<hr>
{% endblock %}
blog comments powered by Disqus