Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 16, 2012 20:26:16

aleksandr8i
Зарегистрирован: 2012-12-16
Сообщения: 9
Репутация: +  0  -
Профиль  

Вьюха подключение к новостям

Всем привет! Прошу помощи!

Мне нужно вывести новости на обычной странице, как на главной, только что бы в коде вывода новостей я мог указать какие именно выводить статьи с помощью id. (-вот что я хочу сделать)

Начал я:

Выдернул код вывода новостей с главной страницы:

{% block sub-content %}
{% for item in last_news %}
<div class=“content-box”>
<div class=“sq-rb”></div>
<a href=“/news/?id={{ item.id }}”>
{% thumbnail item.img “100x100” crop=“center” as img %}
<img class=“main” src=“{{ img.url }}” width=“{{ img.width }}” height=“{{ img.height }}” />
{% endthumbnail %}
</a>
<div class=“news-date”><span class=“red-letter”>{{ item.date_pub|date:“d” }}</span>{{ item.date_pub|date:“E” }}</div>
<p>{{ item.short_text|truncatewords:20 }}&nbsp;<a href=“/news/?id={{ item.id }}”>Подробнее</a> </p>
</div>
{% endfor %}
{% endblock %}


И вот где я хочу что бы он выводился:

{% extends ‘about.html’ %}

{% load thumbnail %}


{% block title %}Longines{% endblock %}
{% block keywords %}{{ page.keywords }}{% endblock %}
{% block description %}{{ page.description }}{% endblock %}
{% block active-longines %}class=“menu-active”{% endblock %}



{% block content-box %}
<div class=“content-box”>
<div class=“sq-lt”></div>
<div class=“sq-rt”></div>
<div class=“sq-lb”></div>
<div class=“sq-rb”></div>
<h1><span class=“red-letter”></span></h1>
{{ page.content|safe }}
</div>

{% endblock %}




Дальше я иду во вьюху вот и она:

from django.shortcuts import get_object_or_404, render_to_response
from geneva.main.models import Pages, News, Watch, Accessories

def index(request):
page = Pages.objects.get(pk=3)
all_pages = Pages.objects.all()
last_news = News.objects.all().order_by('-id')
return render_to_response('index.html', {'page': page, ‘page_list’: all_pages, ‘last_news’:last_news})


def page_by_id(request, id):
page = get_object_or_404(Pages, pk=id)
first_letter = page.title
title = page.title
return render_to_response('page.html', {'page': page, ‘first_letter’:first_letter,'title':title})


def about(request):
page = Pages.objects.get(pk=1)
return render_to_response('about.html', {'page': page})


def watch(request):
watches = Watch.objects.order_by('alt').all()
page = Pages.objects.get(pk=4)
return render_to_response('watch.html', {'watches': watches, ‘page’: page})

def accessories(request):
accessor = Accessories.objects.order_by('alt').all()
return render_to_response('accessories.html', {'accessor': accessor})

def jewelry(request):
return render_to_response('jewelry.html')

def news(request):
idNews = request.GET.get('id')
page = Pages.objects.get(pk=7)
try:
news_items = News.objects.filter(id=idNews)
except Exception:
news_items = News.objects.all()

if not news_items:
news_items = News.objects.all()

if news_items.count() == 1:
return render_to_response('newi.html', {'news_item': news_items, ‘page’: page})
else:
return render_to_response('news.html', {'items': news_items, ‘page’: page})

def contact(request):
page = Pages.objects.get(pk=2)
return render_to_response('contact.html', {'page': page})

def calvinklein(request):
page = Pages.objects.get(pk=14)
return render_to_response('calvinklein.html', {'page': page})

def certina(request):
page = Pages.objects.get(pk=9)
return render_to_response('certina.html', {'page': page})

def rado(request):
page = Pages.objects.get(pk=10)
return render_to_response('rado.html', {'page': page})

def hamilton(request):
page = Pages.objects.get(pk=11)
return render_to_response('hamilton.html', {'page': page})

def tissot(request):
page = Pages.objects.get(pk=12)
return render_to_response('tissot.html', {'page': page})

def longines(request):
page = Pages.objects.get(pk=13)
return render_to_response('longines.html', {'page': page})



Меняю во вьюхе нужную страницу вот это:
def longines(request):
page = Pages.objects.get(pk=13)
return render_to_response('longines.html', {'page': page})


НА ЭТО


def index(request):
page = Pages.objects.get(pk=3)
all_pages = Pages.objects.all()
last_news = News.objects.all().order_by('-id')
return render_to_response('index.html', {'page': page, ‘page_list’: all_pages, ‘last_news’:last_news})




Сохраняю, но ничего не получается, ошибка 500.



  • Только знакомлюсь с питоном. Учитителей небыло. Сюда пришел учится. Прошу необижатся на глупые вопросы и ответы. Со временем буду исправлятся.

Офлайн

#2 Дек. 17, 2012 00:23:12

aleksandr8i
Зарегистрирован: 2012-12-16
Сообщения: 9
Репутация: +  0  -
Профиль  

Вьюха подключение к новостям

Разобрался )
Теперь встал вопрос как вот здесь указать какие именно страницы выводить с помощью id

def longines(request):
page = Pages.objects.get(pk=13)
last_news = News.objects.all().order_by('-id')
return render_to_response('longines.html', {'page': page, ‘last_news’:last_news})



  • Только знакомлюсь с питоном. Учитителей небыло. Сюда пришел учится. Прошу необижатся на глупые вопросы и ответы. Со временем буду исправлятся.

Офлайн

#3 Дек. 17, 2012 04:55:25

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вьюха подключение к новостям

Не очень понял, что нужно, наверное вот это

ids=[1,2,3,4,5,6,7,8,10,22,34,56]
news=Page.objects.filter(pk__in=ids)



Офлайн

#4 Дек. 17, 2012 08:14:29

aleksandr8i
Зарегистрирован: 2012-12-16
Сообщения: 9
Репутация: +  0  -
Профиль  

Вьюха подключение к новостям

Нужно что бы этот код говорил

def longines(request):
page = Pages.objects.get(pk=13)
last_news = News.objects.all().order_by('-id')
return render_to_response('longines.html', {'page': page, ‘last_news’:last_news})


что нужно на странице longines.html выводить не последние новости, а новости по ID.

Я вас правильно понял код должен быть следующим?
def longines(request):
page = Pages.objects.get(pk=13)
ids=[1,2,3,4,5,6,7,8,10,22,34,56]
news=Page.objects.filter(pk__in=ids)



Этот вариант не работает.



  • Только знакомлюсь с питоном. Учитителей небыло. Сюда пришел учится. Прошу необижатся на глупые вопросы и ответы. Со временем буду исправлятся.

Отредактировано aleksandr8i (Дек. 17, 2012 08:21:36)

Офлайн

#5 Дек. 17, 2012 21:39:37

aleksandr8i
Зарегистрирован: 2012-12-16
Сообщения: 9
Репутация: +  0  -
Профиль  

Вьюха подключение к новостям

Не, я ошибаюсь! Думаю по любому вы правильно написали код для вьюхи

def longines(request):
page = Pages.objects.get(pk=13)
ids=[1,2,3,4,5,6,7,8,10,22,34,56]
news=Page.objects.filter(pk__in=ids)


Код вывода новостей нужно править: помогите разобраться и решить проблему.
{% block sub-content %}
{% for item in last_news %}
<div class=“content-box”>
<div class=“sq-rb”></div>
<a href=“/news/?id={{ item.id }}”>
{% thumbnail item.img “100x100” crop=“center” as img %}
<img class=“main” src=“{{ img.url }}” width=“{{ img.width }}” height=“{{ img.height }}” />
{% endthumbnail %}
</a>
<div class=“news-date”><span class=“red-letter”>{{ item.date_pub|date:“d” }}</span>{{ item.date_pub|date:“E” }}</div>
<p>{{ item.short_text|truncatewords:20 }}&nbsp;<a href=“/news/?id={{ item.id }}”>Подробнее</a> </p>
</div>
{% endfor %}
{% endblock %}



  • Только знакомлюсь с питоном. Учитителей небыло. Сюда пришел учится. Прошу необижатся на глупые вопросы и ответы. Со временем буду исправлятся.

Отредактировано aleksandr8i (Дек. 17, 2012 21:40:00)

Офлайн

#6 Дек. 21, 2012 11:30:04

aleksandr8i
Зарегистрирован: 2012-12-16
Сообщения: 9
Репутация: +  0  -
Профиль  

Вьюха подключение к новостям

Аууууу!!! Кто нибудь!!!



  • Только знакомлюсь с питоном. Учитителей небыло. Сюда пришел учится. Прошу необижатся на глупые вопросы и ответы. Со временем буду исправлятся.

Офлайн

#7 Янв. 9, 2013 11:20:14

aleksandr8i
Зарегистрирован: 2012-12-16
Сообщения: 9
Репутация: +  0  -
Профиль  

Вьюха подключение к новостям

Ну, кто нибудь!!!



  • Только знакомлюсь с питоном. Учитителей небыло. Сюда пришел учится. Прошу необижатся на глупые вопросы и ответы. Со временем буду исправлятся.

Офлайн

#8 Янв. 9, 2013 13:37:22

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вьюха подключение к новостям

Давай по порядку, сделай такое представление

def longines(request):
    ids=[1,2,3,4,5,6,7,8,10,22,34,56]
    news=Page.objects.filter(pk__in=ids)
    return render_to_response('longines.html', {"last_news":news})
и в шаблоне выведи

<h1> {{ last_news }}  </h1>

Что получилось?



Офлайн

#9 Янв. 9, 2013 13:39:35

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Вьюха подключение к новостям

что сейчас не так, на что ругается? Выложите лог ошибок.

Офлайн

#10 Янв. 13, 2013 14:57:19

aleksandr8i
Зарегистрирован: 2012-12-16
Сообщения: 9
Репутация: +  0  -
Профиль  

Вьюха подключение к новостям

Предложенный вариант не подошел скрин страницы с ошибками в самом низу. Спасибо всем отозвавшимся на помощь!
Страница, где нужно вывести новости.

{% extends 'about.html' %}
{% block title %}Longines{% endblock %}
{% block keywords %}{{ page.keywords }}{% endblock %}
{% block description %}{{ page.description }}{% endblock %}
{% block active-longines %}class="menu-active"{% endblock %}
{% block content-box %}
	<div class="content-box">
		<div class="sq-lt"></div>
		<div class="sq-rt"></div>
		<div class="sq-lb"></div>
		<div class="sq-rb"></div>
		<h1><span class="red-letter"></span></h1>
		{{ page.content|safe }}
	</div>
		
{% endblock %}



Вьюха
from django.shortcuts import get_object_or_404, render_to_response
from geneva.main.models import Pages, News, Watch, Accessories
def index(request):
    page = Pages.objects.get(pk=3)
    all_pages = Pages.objects.all()
    last_news = News.objects.all().order_by('-id')[:36]
    return render_to_response('index.html', {'page': page, 'page_list': all_pages, 'last_news':last_news})
def page_by_id(request, id):
    page = get_object_or_404(Pages, pk=id)
    first_letter = page.title[0]
    title = page.title[1:]
    return render_to_response('page.html', {'page': page, 'first_letter':first_letter,'title':title})
def about(request):
    page = Pages.objects.get(pk=1)
    all_pages = Pages.objects.all()
    last_news = News.objects.all().order_by('-id')[:4]
    return render_to_response('about.html', {'page': page, 'page_list': all_pages, 'last_news':last_news})
def watch(request):
    watches = Watch.objects.order_by('alt').all()
    page = Pages.objects.get(pk=4)
    all_pages = Pages.objects.all()
    last_news = News.objects.all().order_by('-id')[:4]
    return render_to_response('watch.html', {'watches': watches, 'page': page,'page_list': all_pages, 'last_news':last_news})
def accessories(request):
    accessor = Accessories.objects.order_by('alt').all()
    return render_to_response('accessories.html', {'accessor': accessor})
def jewelry(request):
    return render_to_response('jewelry.html')
def news(request):
    idNews = request.GET.get('id')
    page = Pages.objects.get(pk=7)
    try:
        news_items = News.objects.filter(id=idNews)
    except Exception:
        news_items = News.objects.all()
    if not news_items:
        news_items = News.objects.all()
    if news_items.count() == 1:
        return render_to_response('newi.html', {'news_item': news_items[0], 'page': page})
    else:
        return render_to_response('news.html', {'items': news_items, 'page': page})
def contact(request):
    page = Pages.objects.get(pk=2)
    return render_to_response('contact.html', {'page': page})
def calvinklein(request):
        page = Pages.objects.get(pk=14)
        last_news = News.objects.all().order_by('-id')[:4]
        return render_to_response('calvinklein.html', {'page': page, 'last_news':last_news})
		
def certina(request):
        page = Pages.objects.get(pk=9)
        last_news = News.objects.all().order_by('-id')[:4]
        return render_to_response('certina.html', {'page': page, 'last_news':last_news})
		
def rado(request):
        page = Pages.objects.get(pk=10)
        last_news = News.objects.all().order_by('-id')[:4]
        return render_to_response('rado.html', {'page': page, 'last_news':last_news})
		
def hamilton(request):
        page = Pages.objects.get(pk=11)
        last_news = News.objects.all().order_by('-id')[:4]
        return render_to_response('hamilton.html', {'page': page, 'last_news':last_news})
		
def tissot(request):
        page = Pages.objects.get(pk=12)
        last_news = News.objects.all().order_by('-id')[:4]
        return render_to_response('tissot.html', {'page': page, 'last_news':last_news})
def longines(request):
        page = Pages.objects.get(pk=13)
        last_news = News.objects.all().order_by('-id')[:4]
        return render_to_response('longines.html', {'page': page, 'last_news':last_news})



Сейчас как видите у меня выведены на странице Longines новости - сделано это с помощью ниже приведенной страницы

{% extends 'base.html' %}
{% load thumbnail %}
{% block title %}Швейцарские часы в Волгограде и Волгоградской области{% endblock %}
{% block keywords %}{{ page.keywords }}{% endblock %}
{% block description %}{{ page.description }}{% endblock %}
{% block style %}
	<link rel="stylesheet" href="{{ STATIC_PREFIX }}css/about.css" type="text/css" />
        <link rel="stylesheet" href="{{ STATIC_PREFIX }}css/newsabout.css" type="text/css" />
{% endblock %}
{% block active-about %}class="menu-active"{% endblock %}
{% block content-box %}
	<div class="content-box">
		<div class="sq-lt"></div>
		<div class="sq-rt"></div>
		<div class="sq-lb"></div>
		<div class="sq-rb"></div>
		<h1><span class="red-letter">О</span> компании</h1>
		{{ page.content|safe }}
	</div>
{% endblock %}
{% block sub-content %}
	{% for item in last_news %}
		<div class="content-boxx">
			<div class="sq-rb"></div>
			<a href="/news/?id={{ item.id }}">
				{% thumbnail item.img "100x100" crop="center" as img %}
					<img class="main" src="{{ img.url }}" width="{{ img.width }}" height="{{ img.height }}" />
				{% endthumbnail %}
			</a>
			<div class="news-date"><span class="red-letter">{{ item.date_pub|date:"d" }}</span>{{ item.date_pub|date:"E" }}</div>
			<p>{{ item.short_text|truncatewords:20 }}&nbsp;<a href="/news/?id={{ item.id }}">Подробнее</a> </p>
		</div>
	{% endfor %}
{% endblock %}



  • Только знакомлюсь с питоном. Учитителей небыло. Сюда пришел учится. Прошу необижатся на глупые вопросы и ответы. Со временем буду исправлятся.

Отредактировано aleksandr8i (Янв. 13, 2013 15:13:35)

Прикреплённый файлы:
attachment 12.JPG (96,1 KБ)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version