Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 10

Не работает if в шаблоне

18.07.2021, 23:42. Показов 3573. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Шаблон отказывается обрабатывать второй тег {% if...%} во втором цикле {% for%} Не могу понять почему?

код из шаблона:
Приходы:
HTML5
1
2
3
4
5
6
7
8
9
10
<hr>
        {% if arrival_list %}
          {% for i in arrival_list %}
            {% if i.products == nomenclature.products %}
              {{i.products}}<br>
            {% endif %}
          {% endfor %}
        {% endif %}
      </div>
      <div class="col-6 re">
Отгрузки:

HTML5
1
2
3
4
5
6
7
8
<hr>
        {% if expense_list%}
          {% for j in expense_list %}
            {% if j.products == nomenclature.products %} 
              {{j.products}}<br>
            {% endif %}
          {% endfor %}
        {% endif %}
Если убрать {% if j.products == nomenclature.products %} и оставить просто {{j}}, шаблон отображает результат queryset, который генерирует DetailView.

Не кидайте тапками пожалуйста, учусь сам, по учебнику Mozilla
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.07.2021, 23:42
Ответы с готовыми решениями:

Не работает авторизация в шаблоне
Не работает авторизация в шаблоне. Захожу через admin.php а потом перехожу только на страницу тогда у меня всё нормально, но тогда...

Не работает русский язык в шаблоне
Помогите, я учусь на информационные системы, взял тему для квалификационной работы связанную с созданием сайта, нашел шаблон, а он не...

Скрипт не работает в tpl шаблоне
Не могу сделать шаблон tpl. Скрипт в php работает как нужно - в шаблоне не хочет, ошибка 500. header( 'content-type: text/html;...

10
21 / 12 / 9
Регистрация: 12.02.2020
Сообщений: 126
19.07.2021, 02:15
Скорее всего у вас условие
Python
1
j.products == nomenclature.products
не срабатывает.
В первом условии у вас список arrival_list , во втором expense_list (как я понимаю, там лежат разные значения), далее вы получаете информацию с этих списков и сравниваете с nomenclature.products
У вас i.products и j.products должны быть идентичными, поскольку в nomenclature.products находится какое-то одно значение.
0
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 10
20.07.2021, 20:31  [ТС]
В том-то и дело что эти значения одинаковые. Я уже все варианты перебрал почему так.
0
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
20.07.2021, 21:19
storms, выведи значение переменных прямо в хтмл и сравни их с улавливанием пробелов
0
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 10
20.07.2021, 22:05  [ТС]
К сожалению там все точно одинаковое(
Делаю приход(arrival) вбиваю название вручную - сохранение идет в две модели: Arrival и Nomenclature. В модели расход(Expense) стоит ForeignKey на модель Nomenclature (просто что бы несуществующую позицию не списать), то есть при создании расхода идет запись точно выбранного товара в модель.Соответственно в моделях наименование одинаковое.
Queryset'ы выдают значения, но вот почему не пашет второй if в шаблоне...?
0
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
20.07.2021, 22:14
storms, по типу также одинаковые? тогда условие вида
if str(a) == str(b)
0
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 10
20.07.2021, 22:29  [ТС]
Я только начал изучение Django и вот вопрос - как в шаблоне используется "if str(a)...."
Но работать все равно никак не хочет(
0
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
20.07.2021, 22:51
storms, выведи в консоль
0
21 / 12 / 9
Регистрация: 12.02.2020
Сообщений: 126
20.07.2021, 23:21
storms, присылайте модели и функции
0
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 10
21.07.2021, 00:46  [ТС]
model
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Nomenclature(models.Model):
    products = models.CharField(max_length=200, unique=True, verbose_name="Наименование", null=False, blank=False,)
    remainder = models.DecimalField(max_digits=7, decimal_places=2, verbose_name="Остаток", null=True)
    unit = models.CharField(max_length=10, choices = UNIT, verbose_name="Ед.изм.", null=False, blank=False)
    storage_place = models.CharField(max_length=10, choices = LOCATIONS, default="---", null=True, blank=True,
                                        verbose_name="Место хранения")
    comment = models.TextField(verbose_name="Комментарий", max_length=500, null=True, blank=True)                            
    
 
    class Meta:
        ordering = ['products']
 
    def get_absolute_url(self):
        return reverse('nomenclature-detail', args=(self.id))    
 
    def __str__(self):
        return self.products    
 
 
class Arrival(models.Model):
    #Приход
    date = models.DateField(auto_now_add=True, null=False)
    products = models.CharField(max_length=200, null=False, verbose_name="Наименование товара")
    unit = models.CharField(max_length=10, choices = UNIT, verbose_name="Ед.изм.", null=False, blank=False)
    remainder = models.IntegerField(verbose_name="Количество")
    autor = models.CharField(max_length=30, null=True, blank=True, verbose_name="Кто принял")
    comment = models.TextField(verbose_name="Комментарий", max_length=500, null=True, blank=True)                            
 
    class Meta:
        ordering = ['-id']
 
    def __str__(self):
        return str(self.date)        
                                
 
class Expense(models.Model):
    #Расход
    number_doc = models.CharField(max_length=10, null=False, blank=False, verbose_name="Номер накладной")
    date = models.DateField(auto_now_add=True, null=False)
    products = models.ForeignKey(Nomenclature, on_delete=models.DO_NOTHING, verbose_name="Наименование товара")
    remainder = models.IntegerField(null=False, verbose_name="Количество")
    autor = models.CharField(max_length=30, null=True, blank=True, verbose_name="Кто отпустил")
    comment = models.TextField(verbose_name="Комментарий", max_length=500, null=True, blank=True)                            
 
    class Meta:
        ordering = ['-number_doc']
 
    def __str__(self):
        return str(self.date)
view
Python
1
2
3
4
5
6
7
class NomenclatureDetailView(LoginRequiredMixin, DetailView):
    model = Nomenclature
 
    def get_context_data(self, **kwargs):
        kwargs['arrival_list'] = Arrival.objects.all()
        kwargs['expense_list'] = Expense.objects.all()
        return super().get_context_data(**kwargs)
0
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 10
25.07.2021, 01:15  [ТС]
Вопрос решился отказом от этого самого if:
view
Python
1
2
3
4
5
6
7
8
9
class NomenclatureDetailView(LoginRequiredMixin, DetailView):
    model = Nomenclature
 
    def get_context_data(self, **kwargs):
        context = super(NomenclatureDetailView, self).get_context_data(**kwargs)
        #products = Nomenclature.products
        context['arrival_list'] = Arrival.objects.all().filter(products=self.object)
        context['expense_list'] = Expense.objects.all().filter(products__products=self.object)
        return context
соответственно в шаблоне нет больше нужды сравнивать значения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.07.2021, 01:15
Помогаю со студенческими работами здесь

Не работает русский язык в шаблоне
Ребят, объясните для чайник. Взял шаблон на английском языке. Переписываю на русский лад и всё, надпись пропадает. Пробовал перекодировку в...

Не работает мобильное меню в шаблоне
Вот такая проблема. В шаблоне на демке хорошо работает мобильное меню, но на денвере и на хостинге этого нет. Не знаю как решить. ...

В tpl шаблоне не работает preg_replace
В .tpl шаблоне есть макрос {title} $tpl = file_get_contents('template.tpl'); $tpl = str_replace(&quot;{title}&quot; , $title , $tpl); //...

Неверно работает замена в шаблоне Word
В общем такая проблема, первые 9 замен делает верно, начиная с 10 вставляет почему-то первую замену. Помогите в разобраться в чем проблема ...

Не работает Document_Open в шаблоне Word 2007
Для работы сотрудников мне необходимо помесить некоторый функционал в макрос Document_Open. Данный макрос хочу поместить в шаблон (.dot) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru