Регистрация

Уже есть аккаунт? Вход

Уже есть аккаунт? Sign In Now

Вход

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Зарегистрироваться

Забыли пароль?

Вы не вошли, Зарегистрироваться

Forgot Password

Уже есть аккаунт? Sign In Now

Вы должны войти, чтобы задать вопрос.

Забыли пароль?

Необходима учетная запись, Зарегистрироваться
ВходНовый

Вопросы — CODERIDE.RU

Вопросы — CODERIDE.RU Logo Вопросы — CODERIDE.RU Logo

Вопросы — CODERIDE.RU Navigation

  • Главная
  • О нас
  • Контакты
Поиск
Задать вопрос

Mobile menu

Close
Задать вопрос
  • Главная
  • О нас
  • Контакты
  • Вопросы
    • Новые
    • Рейтинговые
    • Просматриваемые
  • Теги
Главная/ Вопросы/Q 318
In Process
  • 0

Просмотр списка в Django

  • 0

Я использую представления на основе классов и хочу отображать данные на веб-странице с помощью ListView. Я использую цикл for для отображения многих данных объектов. В моих моделях товары имеют поле категории, которое является внешним ключом, где категория-это Сумки, Футболки или Обувь. Я хочу отобразить товары, категория которых-только обувь. Я попытался использовать условие if, которое не работает с полем ForeignKey. Как отфильтровать поле Категория, чтобы отображать только пакеты?

models.py

from django.db import models

# Create your models here.
class Category(models.Model):
    title = models.CharField(max_length=30)
    createdtime = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.title

    class Meta:
        verbose_name_plural = "Categories"

class Product(models.Model):
    mainimage = models.ImageField(upload_to='product')
    name = models.CharField(max_length=264)
    category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='category')
    previewtext = models.TextField(max_length=200, verbose_name='Preview Text')
    detailstext = models.TextField(max_length=1000, verbose_name='Description')
    price = models.FloatField()
    oldprice = models.FloatField(default=0.00)
    createddate = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.name

    class Meta:
        ordering = ['-createddate',]

views.py

from django.shortcuts import render
from django.views.generic import ListView, DetailView
from shopapp.models import Product

# Create your views here.
class Home(ListView):
    model = Product
    template_name = 'shopapp/home.html'

html-файл

<div class="container my-5">
  <h2 class="my-5">Handbags</h2>
  <div class="row">
    {% for product in object_list %}
    {% if product.category == 'Bags' %}
    <div class="col-md-6 col-sm-12 col-lg-3">
      <figure class="card card-product">
        <div class="img-wrap">
          <a href="{% url 'shopapp:productdetail' pk=product.pk %}"><img src="/media/{{ product.mainimage }}" style="width:100%; height:300px;"></a>
        </div>

        <figcaption class="info-wrap">
          <h6 class="title">{{ product.name }}</h6>
          <div class="action-wrap">
            <div class="price-wrap h5">
              <span class="price-new">${{ product.price|floatformat:2 }}</span>
              <span class="price-old"><strike>${{ product.oldprice|floatformat:2 }}</strike></span>
            </div>
          </div>
        </figcaption>

      </figure>
    </div>
    {% endif %}
    {% endfor %}
  </div>
</div>

djangofor-loopforeign-keyslistviewpython
  • Поделиться
Nduati 27.06.2021 19:00
  • 1 1 Ответ
  • 10 Просмотров
Ответ

    Похожие вопросы

    • Python и GmailAPI: Как отслеживать входящие сообщения Gmail для получения новых писем?
    • Получить идентификатор пользователя из представления на основе классов
    • как сделать многопользовательскую игру в кости Клинта [дубликат]
    • Правильное преобразование байтов base64 в строку и отображение в cv2.imshow
    • Изображения Django не отображаются, когда DEBUG=False на Heroku
    • Пожалуйста, помогите мне понять, почему модель классификации изображений Tensorflow слишком подходит
    • Ошибка значения(“Можно сравнивать только объекты серии с одинаковыми метками”) - набор данных boston.csv
    • Экспорт нескольких моделей Django в один файл
    • Что означает “типизировано=Ложно”?
    • Стратифицированная перекрестная проверка или выборка для разделения тестов на основе нескольких функций в python

    1 Ответ

    • Популярные
    • Старые
    • Новые
    1. В своем коде используйте product.category.title примерно так:

      ...
          {% if product.category.title == 'Bags' %}
      ...
      

      Вы сравниваете объект категории с авоськами.

      //править

      Я также рекомендую фильтровать данные в представлении, если вам нужны только эти данные в представлении. Нет необходимости извлекать все продукты из вашей базы данных и отправлять их на просмотр, просто чтобы отобразить их часть.

      • Поделиться
      SvenTUM 27.06.2021 19:27
      • 0
      • Ответить

    Ответить
    Отменить ответ

    Вы должны авторизоваться, чтобы добавить ответ.

    Забыли пароль?

    Необходима учетная запись, Зарегистрироваться

    Explore

    • Главная
    • Вопросы
      • Новые
      • Просматриваемые
      • Рейтинговые
    • Теги
    • .net
    • android
    • arrays
    • asp-net
    • c
    • c#
    • c++
    • css
    • html
    • ios
    • java
    • javascript
    • jquery
    • mysql
    • node-js
    • php
    • r
    • ruby-on-rails
    • sql

    2021 CODERIDE.RU

    Вставить/изменить ссылку

    Введите адрес назначения (URL)

    Или сделайте ссылку на существующий материал

      Поисковый запрос не задан. Показаны недавние элементы. Воспользуйтесь поиском или клавишами вверх/вниз, чтобы выбрать элемент.