我浏览了所有的帖子,但没有找到我想要的,这就是为什么我会问。
目标是能够在管理中创建图片库,然后上传图像,并选择在其中(已经创建)画廊要上传,之后,当创建一个帖子(例如)有一个字段,以访问画廊模型,并选择要在转盘画廊中使用的图像所说的帖子。
例如,我在一个旅游博客中创建了一个帖子,并希望添加一些我必须在旋转木马中使用的旅行图片。
我希望我已经解释了我的目标是可以理解的,并且有人能够给我指路或指出正确的方向。
如果有任何第一方的解决方案,我将非常高兴
请注意,由于我是django新手,请链接更详细的答案或教程,或为新手解释
发布于 2020-06-23 00:34:07
这是对你的想法的回答。像这样修改你的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>现在,图库应该可以像您预期的那样工作。希望你能找到你正在寻找的东西。
https://stackoverflow.com/questions/62517849
复制相似问题