• Как подгружать контент в Django?

    @apheyhys Автор вопроса
    Окончательное решение

    template

    {% load static %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
        <link rel="stylesheet" href="{% static "testsplitrequests/css/main.css" %}">
        <title>Title</title>
    </head>
    <body>
        {% for item in articles %}
            <div class="divTable greyGridTable">
          <div class="divTableBody">
            <div class="divTableRow with-pointer" data-toggle="collapse" data-target="#collapse_{{ item.serial_number }}" data-id="{{ item.serial_number }}" aria-expanded="false"
              aria-controls="collapse_{{ item.serial_number }}">
              <div class="divTableCell col"><b>{{ item.serial_number }} {{ item.title }}</b></div>
            </div>
          </div>
        </div>
    
        <div id="collapse_{{ item.serial_number }}" class="collapse article" data-id="{{ item.serial_number }}">
          <div class="col-12 row">
                   <p>{{ item.description }}</p>
              <p class="article_img" id="{{ item.serial_number }}"></p>
    
          </div>
        </div>
    
        {% endfor %}
    
    <script
    			  src="https://code.jquery.com/jquery-3.3.1.js"
    			  integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
    			  crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
          crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js" integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em"
          crossorigin="anonymous"></script>
    
    
        <script>
            $(document).ready(function(){
            $(".article").on("show.bs.collapse", function(){
              var article = $(this).attr('data-id')
    
              data = {
                article_id: article
                }
    
              $.ajax({
                type: "GET",
                url: "{% url 'show_article_image' %}",
                data: data,
                dataType: "json",
                success: function(data){
                  $('#' + data.article_id).html('<img src="' + data.article_img + '">');
                }
              })
            })
          })
        </script>
    
    </body>
    </html>


    views.py
    from django.views.generic.list import ListView
    from django.http import JsonResponse
    from django.views import View
    from .models import *
    from .mixins import CategoryAndArticlesListMixin
    
    class CategoryListView(ListView, CategoryAndArticlesListMixin):
    
        model = TestSplitModel
        template_name = 'testsplitrequests/base.html'
    
        def get_context_data(self, *args, **kwargs):
            context = super().get_context_data(*args, **kwargs)
            context['articles'] = self.model.objects.all()
            return context
    
    
    class DynamicArticleImageView(View):
    
        def get(self, *args, **kwargs):
            article_id = self.request.GET.get('article_id')
            article = TestSplitModel.objects.get(id=article_id)
            data = {
                'article_img': article.image.url,
                'article_id': article.serial_number
            }
            return JsonResponse(data)
  • Как в linux подсчитать длину имени файла?

    @apheyhys Автор вопроса
    Имени, а не содержимого.
    Например файл another_name.txt
    Длина имени - 12 символов
  • Почему возникает ошибка matching query does not exist?

    @apheyhys Автор вопроса
    Все разобрался, дело в urls

    было

    urlpatterns = [
        path('', views.novels_list, name='novels_list'),
        path('<slug>', views.novel_text, name='novel_text'),
    ]


    А нужно
    urlpatterns = [
        path('', views.novels_list, name='novels_list'),
        path('<slug:slug>', views.novel_text, name='novel_text'),
    ]
  • Почему возникает ошибка matching query does not exist?

    @apheyhys Автор вопроса
    В том то и дело, что text и novels отображаются в шаблоне, все нормально работает, но ошибка возникает.
  • Как переименовать загруженное изображение?

    @apheyhys Автор вопроса
    Вот что по итогу вышло:

    from hashlib import md5
    from time import time
    from uuslug import slugify
    
    def upload_to(instance, filename, unique=False):
    # отделяем расширение от имени файла
        ext = op.splitext(filename)[1]
        name = str(instance.pk or '') + filename + (str(time()) if unique else '')
    # имя папки 
        filename = slugify(instance.name_cover)
    # имя файла + хеш + расширение
        filename_unique = instance.name_cover + '-' + md5(name.encode('utf8')).hexdigest() + ext
        basedir = op.join(instance._meta.app_label)
    # соединяем вместе
        return op.join(basedir, filename, filename_unique)
    
    class Cover(models.Model):
        name_cover = models.CharField(max_length=100, blank=True, null=True)
        cover = models.ImageField(upload_to=upload_to)
    
        def __str__(self):
            return self.cover.url
  • Как переименовать загруженное изображение?

    @apheyhys Автор вопроса
    Нужно менять название изображения, а не путь по которому она будет сохраняться.
  • По run server запускается старый проект?

    @apheyhys Автор вопроса
    Да, все просто. Нужно освободить порт

    Слушаем порт
    netstat -anp tcp | grep 8000

    Смортим pid процесса
    tcp        0      0 92.63.96.168:8000       146.120.57.126:43506    ESTABLISHED 5694/uwsgi


    Очищаем порт по pid
    kill -9 5694