Django: Как отобразить HTML-шаблон на основе выбора кортежа

#django #django-models #django-views #django-templates

#django #django-модели #django-просмотры #django-шаблоны

Вопрос:

Я создал модель, представления и шаблоны следующим образом:

Модель

 project_choices = (
    ('Speaker', (
        ('help', 'Freedom'),
    )),
    ('Money', (
        ('invest', 'Investment'),
    )
    ),
    (
        'Children', (
            ('mc', 'Mother amp; Child'),
        )
    ),
)


class Blog(models.Model):
    title = models.CharField(max_length=250)
    description = CKEditor5Field('Text', null=True)
    limitation = models.CharField(
        null=True, max_length=50, choices=project_choices)

    def __str__(self):
        return self.title
 

Теперь ПРЕДСТАВЛЕНИЕ

 def view_portfolio(request):
    blog= Blog.objects.all()
    template = 'blog/blog.html'
    context = {'blog': blog}
    return render(request, template, context)
 

затем шаблон hmtl

         {% for blog in blog%}
            {% if blog.limitation['**help**'] %}**//I have also tried {% if portfolio.limitation == project_choices['AI']%}**
            <div class="col-lg-4 col-md-6">
              <div class="portfolio-wrap">
                <img src="{{blog.featured}}" class="img-fluid" alt="">
                <div class="blog-info">
                  <h4>{{blog.title}}</h4>
                  <p></p>
                  <div class="portfolio-links">
                    <a href="{{blog.featured}}" data-gall="blogGallery" class="venobox" title="{{blog.title}}"><i class="bx bx-plus"></i></a>
                    <a href="blog-details.html" title="More Details"><i class="bx bx-link"></i></a>
                  </div>
                </div>
              </div>
            </div>
            {% endif %}  
      {%endfor%}
 

Моя цель — показывать блоги, основанные только на справке, в качестве выбранного выбора, пожалуйста, как я могу этого добиться?
Я использую django3

Комментарии:

1. Откуда у вас ограничение = модели. BooleanField и добавление Choises и max_length это должно быть charfield

2. Большое спасибо @PavanKumarTS Я исправил наблюдаемую проблему, однако при загрузке шаблона я по-прежнему получаю аналогичную ошибку: не удалось разобрать остаток: ‘[‘AI’]’ из ‘portfolio.limitation [‘AI’]’ ваша помощь будет высоко оценена.

3. вы видите, что значение, которое вы сохраняете в ограничении, равно char, поэтому вам не нужно использовать like [‘AI’] . Вы можете просто использовать следующим образом {% if blog.ограничение == ‘справка’ %}

4. О, большое вам спасибо @PavanKumarTS, я действительно ценю, сэр.