В результате выполнения кода ниже
{{p.category}} <!-- help -->
{% if p.category == "help" %}
<button type="button" class="btn btn btn-outline-danger btn-sm" style="color:blue;">
<a href="{% url "todo:todo_help" p.pk %}" >help 11</a>
</button>
{% else %}
<button type="button" class="btn btn btn-outline-danger btn-sm">
<a href="{% url "todo:todo_help" p.pk %}" >help 22 </a>
</button>
{% endif %}
Я ожидал, что будет выведена кнопка help11.
Причина в том, что {{p.category} - это "помощь"
Но кнопка вывода была help22.
Я не знаю, почему это не работает
Эта логика сравнения неверна?
Если вы знаете причину, пожалуйста, дайте мне знать.
вид
class TodoList(LoginRequiredMixin,ListView):
model = Todo
paginate_by = 20
def get_queryset(self):
if self.request.user.is_anonymous:
return Todo.objects.all().order_by('-created')
else:
return Todo.objects.filter(Q(author=self.request.user) & Q(elapsed_time__isnull=True)).order_by('-created')
def get_context_data(self, *, object_list=None, **kwargs):
context = super(TodoList, self).get_context_data(**kwargs)
context['comment_form'] = CommentForm()
context['category_list'] = Category.objects.all()
context['todos_without_category'] = Todo.objects.filter(category=None).count()
context['todo_count_uncomplete'] = Todo.objects.filter(Q(author=self.request.user) & Q(elapsed_time__isnull=True)).count()
context['todo_count_complete'] = Todo.objects.filter(Q(author=self.request.user) & Q(elapsed_time__isnull=False)).count()
context['total_todo_count_uncomplete'] = Todo.objects.filter(Q(elapsed_time__isnull=True)).count()
context['total_todo_count_complete'] = Todo.objects.filter(Q(elapsed_time__isnull=False)).count()
return context
снимок экрана
models.py (поле категории)
category = models.ForeignKey(Category, blank=True, null=True, on_delete=models.SET_NULL)
категория модели
class Category(models.Model):
name = models.CharField(max_length=25, unique=True)
description = models.TextField(blank=True)
slug = models.SlugField(unique=True, allow_unicode=True)
def __str__(self):
return self.name
class Meta:
verbose_name_plural = 'categories'
def get_absolute_url(self):
return '/todo/category/{}/'.format(self.slug)