2014-10-14 3 views
0

В прошлый раз я спросил, как сгенерировать URL-адрес с похожим маркетологом, начиная с идентификатора, который вы мне сказали, что лучше использовать слизни для этого. В это время я хочу создавать динамические URL-адреса с помощью пули. Моя цель получить этот результат:Создание выделенных URL-адресов с помощью пули

У меня есть пять продуктов, которые я назвал карточками в models.py (Ysera, Neltharion, Nozdormu, Alexstrasza, Malygos). Мне нужен соответствующий URL-адрес каждого из продуктов:

локальный: 8000/карты/Исера

локальный: 8000/карты/Нелтарион

локальный: 8000/карты/Ноздорму ... и т.д.

Я пытаюсь сгенерировать эти URL-адреса, но я не знаю, хорошо ли я применял команды, либо я не знаю, как я могу указать идентификационную карту, как основное имя карты (ysera, neltharion ...) , Я пытался следовать ответ размещенные здесь, в этом сообществе немного слепой, и это мой «реконфигурация»:

Вот мой views.py:

from django.shortcuts import render_to_response 
from django.template import RequestContext 
from dracoin.apps.synopticup.models import card 
from dracoin.apps.home.forms import ContactForm,LoginForm 
from django.core.mail import EmailMultiAlternatives 

from django.contrib.auth import login,logout,authenticate 
from django.http import HttpResponseRedirect 

def shop(request): 
    tarj = card.objects.filter(status=True) 
    ctx = {'tarjetas':tarj} 
    return render_to_response('home/shop.html',ctx,context_instance=RequestContext(request)) 


def singleCard(request, slug, id): 
    try: 
     tarj = card.objects.get(slug=slug, id=id_tarj) 
    except ObjectDoesNotExist: 
     tarj = get_object_or_404(card, id=id_tarj) 
     return render_to_response('home/singleCard.html',ctx,context_instance=RequestContext(request)) 

Мой urls.py (У меня есть URL. ру для каждого приложения и основной urls.py):

url(r'^card/(?P<slug>[-\w]+)/(?P<id_tarj>\d+)/$','dracoin.apps.home.views.singleCard',name='vista_single_card'), 

Мой models.py:

class card(models.Model): 
    nombre = models.CharField(max_length=100) 
    descripcion = models.TextField(max_length=300) 
    status = models.BooleanField(default=True) 

    def __unicode__(self): 
     return self.nombre 

Мой общий шаблон для всех карты:

{% extends 'base.html' %} 
{% block title %} Tarjeta {{card.nombre}} {% endblock %} 
{% block content %} 

<h1>{{ card.nombre }}</h1><br> 
<p> {{ card.descripcion }}</p>   

{% endblock %} 

Я не знаю, если мой пробкового здание в views.py было найти, я убежден, что urls.py это плохо, но я не знаю, как строить?

пожалуйста, простите меня, если я изменить свой собственный вопрос, чтобы продлить его, Недавно я пытался узнать Джанго на моей стороне, и у меня есть много пробелов в моем обучении

apologizeme заранее мой обширный вопрос, и если я упускать из виду что нибудь.

Спасибо!

+0

1) Кажется, что у вас нет поля под названием «slug» в вашем классе карты. 2) Появляется ли сообщение об ошибке? Если что-то не работает, вам лучше описать, как это не получается :) – Tony

+0

дальше, чтобы описать ошибку, я хочу знать, какие части моих конфигураций имеют сбои или, с другой стороны, что я игнорирую.Я знаю, что у меня много настроек в моей конфигурации, я стараюсь следовать двум ответам здесь, но это мой результат :( – Jhonny

+0

Просто совет: попробуйте задать вопросы, подобные этому, с определенным сообщением об ошибке, и включите ваш код в качестве дополнительной информации. ваш случай кажется, что вы забыли включить поле [slug] (https://docs.djangoproject.com/en/1.7/ref/models/fields/#slugfield) в определение модели. (Вы пытаетесь получить карта с помощью пули, но ваша модель карты не определяет поле пули.) – Tony

ответ

0

Эта линия:

tarj = card.objects.get(slug=slug, id=id_tarj)

пытается загрузить card объект, где id поле установлено значение является id_tarj и slug поле устанавливается в slug. В вашей модели нет поля с именем slug. Вам нужно будет добавить его.

Хороший кандидат на него будет SlugField - https://docs.djangoproject.com/en/dev/ref/models/fields/#slugfield

Вам нужно будет убедиться, что ваше поле пробкового содержит собственное значение в каждом конкретном случае.