Я новичок в Джанго.Я не мог понять это на основе моей модели.У меня есть одна таблица продуктов и одна таблица изображений продуктов.В таблице Image продукта у меня есть внешний ключ таблицы Product.Теперь я хотел бы отобразить все изображения на основе внешнего ключа таблицы продуктов.Как мне это сделать.У меня есть много продуктов, которые я могу сделать только по одному конкретному идентификатору или по имени, но я не хочу этого, потому что у меня есть сотни продуктов, которые мне нужно извлекать данные изображений динамически на основе внешнего ключа.
Я могу сделатьизображение одного продукта в этом примере.
p = Product.objects.get(pk=1)
pimage = Product_Image.objects.filter(product_image=p)
, но эта база данных только вручную, pk = 1 Я надеюсь, вы поняли мою точку зрения.Я хочу отфильтровать данные много продукта, я не могу упомянуть каждый запрос на основе идентификатора.Поэтому, пожалуйста, помогите мне.IN php очень прост, я могу сохранить идентификатор в переменной, а затем использовать Where Clause для сопоставления записи.
Как я могу отобразить на шаблоне.
Буду признателен за вашу помощь.
Моя модель выглядит следующим образом.
class Product(models.Model):
product_category = models.ForeignKey(Category, on_delete=models.CASCADE)
product_name = models.CharField(max_length=250, unique=True)
product_slug = models.SlugField(max_length=250, unique=True)
product_description = models.TextField(blank=True)
product_price = models.DecimalField(max_digits=10, decimal_places=2)
product_stock = models.IntegerField()
product_available = models.BooleanField(default=True)
product_created = models.DateTimeField(auto_now_add=True)
product_updated = models.DateTimeField(auto_now=True)
class Meta:
ordering = ('-product_created',)
verbose_name = 'product'
verbose_name_plural = 'products'
def __str__(self):
return '{}'.format(self.product_name)
# Image Model with thumbnail generation
class Product_Image(models.Model):
product = models.ForeignKey(Product, related_name='images', on_delete=models.CASCADE)
product_image_created = models.DateTimeField(auto_now_add=True)
product_image_updated = models.DateTimeField(auto_now=True)
product_image = ProcessedImageField(upload_to='product',
processors=[ResizeToFill(400,400)],
format='JPEG',
options={'quality': 80})
class Meta:
ordering = ('-product_image_created',)
verbose_name = 'product-image'
verbose_name_plural = 'products-images'
def __str__(self):
return '{}'.format(self.product_image)