2016-03-27 91 views
1

我有一个问题,使用for循环标签,这是很好的选项卡,但标签内容本身的ID参考是问题,因为我无法访问的瞬时值在{{规格}}现在我如何自定义我的网址导航与丸标签,以显示与专业化的课程,使用for循环标签在导航导航引导与Django

category_page.html

<!-- This is tabs with for loop for data in specializations worked well--> 
    <div class="row" > 
       <div class="list-group col-md-4" role="navigation"> 
        {% for specs in spec %} 
         <button type="button" class="list-group-item" data-toggle="tab" href="{{ specs }}">{{ specs }}</button> 

        {% endfor %} 
       </div> 
<!-- Here is the tab content and it doesn't work well as I need data appears related to the tab itself --> 
       <div class="col-md-8"> 
        <div class="tab-content "> 
         {% for specs in spec %} 
        <div id="{{ specs }}" class="tab-pane fade "> 
          <div class="row"> 
           {% for instances in courses_spec %} 
            <div class="col-sm-6 col-md-6"> 
              <div class="caption"> 
              <h3>{{ instances.name }}</h3> 
              </div> 
            </div> 

           {% endfor %} 


        </div> 
       </div> 

views.py

def categories_pages(request, category_name, speci_name=None): 
    courses = Course_dir.objects.filter(
     availability=True, 
     id_CO__id_S__name=category_name 
    ).order_by('date') 

    courses_spec = Course_dir.objects.filter(
     availability=True, 
     id_CO__name=speci_name 
    ).order_by('date') 

    spec = Specialization.objects.filter(
     id_S__name__contains=category_name 
    ).order_by('name') 
    context = { 
     "courses": courses, 
     "spec": spec, 
     "courses_spec": courses_spec 
    } 
    return render(request, 'categories/categories-page.html', context) 

网址。 PY

url(r'^categories/(?P<category_name>[-\w]+)/$', views.categories_pages, name='category_detail'), 
url(r'^categories/(?P<category_name>[-\w]+)/(?P<speci_name>[-\w]+)$', views.categories_pages, name='specialization_detail'), 

models.py

class Category(models.Model): 
    name = models.CharField(max_length=100) 
    description = models.CharField(max_length=300, blank=True) 
    slug = models.SlugField(default=None) 

def get_absolute_url(self): 
    self.slug = slugify(self.name) 
    return reverse('category_detail', args=[str(self.slug)]) 

class Specialization(models.Model): 
    id_S = models.ForeignKey(Category, on_delete=models.CASCADE) 
    name = models.CharField(max_length=100) 
slug = models.SlugField(default=None) 

def __str__(self): 
    return self.name 

def get_absolute_url(self): 
    self.slug = slugify(self.name) 
    return reverse('spec_detail', args=[str(self.slug)]) 

回答

0

有两件事情 -

  1. 你是不是叫get_absolute_url任何地方,所以模板将只显示模型的__unicode__方法的返回值(如果Python 2)或__str__方法(如果Python 3)。
  2. 不要调用for spec in spec,使用单独的变量,所以没有命名空间污染和潜在的错误。

    {% for each_spec in spec %} <button type="button" class="list-group-item" data-toggle="tab" href="{{ each_spec.get_absolute_url }}">{{ spec }}</button> {% endfor %}

+0

我知道这一点,它已完成,但它不是我的问题,我的问题是,资产净值丸超链接无法解析其标签页中打开 –