Список статей

Модуль 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