这是您想法的答案..
像这样改变你的models.py
class Carousel(models.Model):
carousel_name = models.CharField(max_length=50)
def __str__(self):
return self.carousel_name
class Photo(models.Model):
carousel = models.ForeignKey(Carousel, on_delete=models.CASCADE)
image =models.ImageField(upload_to="carousel_image", height_field=None, width_field=None, max_length=None)
然后在你的 Views.py 中:
from django.views.generic import DetailView
from .models import Carousel, Photo
class CarouselView(DetailView):
model = Carousel
template_name = 'carousel.html'
现在在你的 admin.py 中:
from .models import Carousel, Photo
class PhotoInline(admin.TabularInline):
model= Photo
extra= 3
class CarouselAdmin(admin.ModelAdmin):
inlines=[PhotoInline]
admin.site.register(Carousel, CarouselAdmin)
现在让您的 urlpattern 获取 pk 作为 kwargs 以便像这样加载图像:
urlpatterns = [
path('<int:pk>/', CarouselView.as_view())
]
最后在您的模板中:
呈现为:
<!-- The slideshow -->
<div class="carousel-inner">
{% for photo in carousel.photo_set.all %}
<div class="carousel-item active">
<img src="{{ photo.image.url }}" alt="Image {{forloop.counter}}" width="1100" height="500">
</div>
{% endfor %}
</div>
现在画廊应该可以按照您的预期工作了。
希望你得到你正在寻找的东西。?