Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django画廊_Django - Fatal编程技术网

Django画廊

Django画廊,django,Django,我有一个分类模型。我希望每次创建一个类别时,它都会在我的媒体文件夹中创建一个目录。从那里,我希望能够上传到相关的文件夹图像,并有一个画廊在我的类别视图,循环通过每个图像在上述类别目录 category.html models.py 此代码似乎可以工作,但仅适用于媒体根。我想循环浏览当前类别好的,让我们在您的视图中进行操作 def类别\详细信息\查看请求,slug: 类别=获取对象或类别,段塞=段塞 获取类别图像应位于的绝对路径 category\u imgs\u path=os.path.abs

我有一个分类模型。我希望每次创建一个类别时,它都会在我的媒体文件夹中创建一个目录。从那里,我希望能够上传到相关的文件夹图像,并有一个画廊在我的类别视图,循环通过每个图像在上述类别目录

category.html

models.py


此代码似乎可以工作,但仅适用于媒体根。我想循环浏览当前类别

好的,让我们在您的视图中进行操作

def类别\详细信息\查看请求,slug: 类别=获取对象或类别,段塞=段塞 获取类别图像应位于的绝对路径 category\u imgs\u path=os.path.abspaths.path.join settings.MEDIA\u根目录, 类别.蛞蝓 检查路径是否存在,如果不存在,请创建它 如果不是os.path.isdirectory\u imgs\u路径: os.mkdircategory\u imgs\u路径 images=os.listdircategory\u imgs\u路径 上下文={ 图像:图像, } 返回renderrequest“main/category_detail.html”,上下文 也许最好在取消分类时创建分类图像路径它是创建的而不是查看的,您还没有发布创建取消分类实例的代码,所以,我已经在您的视图中完成了,它应该可以工作

请注意,我添加了get_object_或_404 django快捷方式的用法,以避免出现try/except,docs here->

你应该考虑对图像中列出的内容进行过滤,以确保图像只有使用OS.WAKE、GOLB或类似的东西在该变量中。

希望这能满足您的需求,如果没有,请毫不犹豫地提出要求

如果您是从管理界面创建实例

由于您是从admin接口创建实例,因此可以在ModelAdmin中创建覆盖save_model方法的路径,如下所示:

类类别AdminModelAdmin: ... def save_modelself、请求、obj、表单、更改: category\u imgs\u path=os.path.abspaths.path.join settings.MEDIA\u根目录, 鼻涕虫 检查路径是否存在,如果不存在,请创建它 如果不是os.path.isdirectory\u imgs\u路径: os.mkdircategory\u imgs\u路径 super.save_modelrequest,obj,form,change
在你看来,你如何知道你想要展示的是哪一类?您需要一个pk或slug来选择所需的类别first@gabriel我的坏消息是我把函数放错了。我更新了我的帖子。但是你在创建类别时是否正在为该类别创建文件夹?@gabriel不,我没有。也许你可以帮我一下好的,如果你添加代码来创建一个CategoryTank你会很有用的。我使用管理面板中的类别模型创建类别。我让你的代码工作,但就像你说的,它不会创建目录,直到我访问页面。我该如何解决这个问题?
<div class="container">
    <div class="row">
    {% for image in images %}
      <div class="col-md-4">
          <a href="/media/{{ image }}"> <img src="/media/{{ image }}" class="img-responsive img-thumbnail" width="304" height="236"/>
          </a>
       </div>
    {% endfor %}
    </div>
</div>
def category_detail_view(request, slug):
    try:
        category = Category.objects.get(slug=slug)
        images = os.listdir(settings.MEDIA_ROOT)
        context = {
            "images": images,
        }
    except Category.DoesNotExist:
        return HttpResponseNotFound()
    return render(request, 'main/category_detail.html', context)
class Category(models.Model):
    category_title = models.CharField(max_length=200)
    category_image = models.ImageField(upload_to="category")
    category_description = models.TextField()
    slug = models.SlugField(max_length=200, unique=True, default=1)

    class Meta:
        verbose_name_plural = "Categories"
        unique_together = ("category_title", "slug")

    def __str__(self):
        return self.category_title