0
두 개의 모델 '제품'인스턴스가 있습니다. 관리자는 각 이미지에 두 개의 이미지를 업로드합니다. 이미지가 둘 대신에 각각의 페이지에서 호출되면 네 개의 이미지가 모두 각 페이지에 제공됩니다. 이미지를 잘못된 제품에 쏟지 않고 적절한 제품으로 제한하려면 어떻게합니까?모델의 특정 인스턴스에 대한 외래 키 제한
내 models.py에서이 관계를
class Product(models.Model):
product_name = models.CharField(max_length=200)
def __unicode__(self):
return self.product_name
class Image(models.Model):
product_image = models.ForeignKey(Product)
image = models.ImageField(upload_to='image')
image_id = models.CharField(max_length=200)
views.py
def productpage(request, product_image_id):
product_list = Product.objects.all()
image_list = Image.objects.all()
product = get_object_or_404(Product, pk=product_image_id)
image = get_object_or_404(Image, pk=product_image_id)
return render(request, 'polls/productpage.html', {
'product': product, 'image': image,
'product_list' : product_list, 'image_list':image_list
TEMPLATE 나는 제품 페이지, 모두에서이 결과를 얻고있다
{% for image in image_list %}
<div id ="{{ image.image_id }}"class="numbers"><img src="{{ image.image.url }}" alt="slide"></div>
{% endfor %}
}
하는 2 일 때 4 개의 이미지를 모두 반환합니다.
<div id ="one"class="numbers"><img src="/media/image/red1.jpg" alt="slide"></div>
<div id ="two"class="numbers"><img src="/media/image/red2.png" alt="slide"></div>
<div id ="one"class="numbers"><img src="/media/image/blue1.jpg" alt="slide"></div>
<div id ="two"class="numbers"><img src="/media/image/blue2.png" alt="slide"></div>
신속하고 유용한 답변을 제공해 주셔서 감사합니다. – AllTheTime
추가 팁 : 외부 키 필드에'related_name'을 추가하면 Django가 생성하는 기본 역방향 관계 이름 (이 경우 "image_set")을 변경할 수 있습니다. 그래서'product_image = models.ForeignKey (Product, related_name = 'images')'는'product.image_set.all()'대신'product.images.all()'을 사용할 수 있음을 의미합니다. 당신은 종종 이런 식으로 더 좋게 보일 수 있습니다. –