URL Django продолжает дублироваться (динамическая навигация) - PullRequest
0 голосов
/ 28 февраля 2012
class Entry(models.Model):
    ....
    slug = models.SlugField(help_text = "You do not need to change this unless you want to change the url")

class Meta:
    verbose_name_plural = "Entries"

def __unicode__(self):
    return self.title

def get_absolute_url(self):
    cat = slugify(self.category)    
    return "%s/%s/"  % (cat,self.slug)

views

def index(request):
    all_entries = Entry.objects.filter(status=1)
    treatments = all_entries.filter(category='treatments')
    female = all_entries.filter(category='female')
    male = all_entries.filter(category='male')
    work = all_entries.filter(category='work')

    return render_to_response('index.html',locals())

def entry_page(request,slug_add):
    all_entries = Entry.objects.filter(status=1)
    page = all_entries.get(slug=slug_add)

    treatments = all_entries.filter(category='treatments')
    female = all_entries.filter(category='female')
    male = all_entries.filter(category='male')
    work = all_entries.filter(category='work')
    return render_to_response('index.html',locals())

url

 url(r'^$','hypno_pages.views.index'),
 url(r'^admin/', include(admin.site.urls)),
 url(r'^$','hypno_pages.views.index'),   
 url(r'^(treatments|male|female|work)/(?P<slug_add>[a-zA-Z0-9-]+)/$','hypno_pages.views.entry_page'),

template

<div class="subnav ui-corner-all">
  <h3>xxxxx can help to treat any of the following conditions </h3>
<ul class = 'float' >       
         {% for line in treatments|slice:":5" %} 
        <li ><a href='{{line.get_absolute_url}}'>{{ line.title }}</a></li>
     {% empty %}

         {% endfor %}
    </ul>
    <ul class = 'float'>
     {% for line in treatments|slice:"5:10" %}
        <li ><a href="{{line.get_absolute_url }}" >{{ line.title }}</a></li>
     {% empty %}
     {% endfor %}
</ul>
  .......

* edit * Это код шаблона, только усеченный, другойчасти просто повторяются.

Моя проблема. У меня есть главная страница указателя с панелью навигации, в которой есть выпадающий список с множеством ссылок (которые будут динамически добавляться из базы данных, как только клиент что-то добавит, теперь мойпроблема в том, что по навигационной ссылке говорят, что я нажимаю на ссылку 'http://127.0.0.1:8000/treatments/what-to-do/' Я перехожу на связанную страницу, но теперь все ссылки в навигационной панели меняются на' http://127.0.0.1:8000/treatments/what-to-do/treatments/what-to-do/' в соответствии с конкретной ссылкой. Я 1 неделя сDjango и месяц с питоном, может быть, просто что-то упустил. Спасибо

1 Ответ

0 голосов
/ 28 февраля 2012

Для меня это выглядит так, как будто вы должны использовать абсолютный путь в ваших "a hrefs", поскольку, как и вы, ссылка является относительной и будет добавлена ​​к (url-) пути, по которому вы уже находитесь,

вместо <a href="/{{line.get_absolute_url }}" >.

Также я бы использовал декоратор @pemarlink для вашей функции get_absolute_url.Посмотрите здесь .

...