Django Carousel с фотографиями, выбранными администратором в начале из списка - PullRequest
0 голосов
/ 16 октября 2018

Я хотел бы установить в моем django веб-приложении Bootstrap или Javascript carousel немного конкретнее.До сих пор, и, как я вижу, изображения карусели определяются внутри внутреннего кода разработчиком.

Я хотел бы создать карусель, где изображения определяются администратором из шаблона с выбором списка публикаций.

Каждая публикация имеет титульный лист.Таким образом, пользователь-администратор может проверить одну или несколько публикаций, а карусель, помещенная в другой шаблон, загружает предыдущие выбранные изображения.

У меня есть другие вопросы из этой идеи:

  • Как я могу сохранить администраторавыбор для использования проверенной картинки в карусели?(Может быть, через базу данных, но как?)
  • Как передать проверку переменных из представления класса в другое?(Я должен установить глобальные переменные?)
  • У вас есть идеи, если что-то подобное уже существует?

Большое спасибо заранее за любую идею!

У меня есть файл модели:

class Publication(models.Model):
    new_publication = models.BooleanField(verbose_name=_('new publication'), default=True)
    cover = models.ImageField(upload_to='media/', verbose_name=_('cover page'), default='')

На мой взгляд, этот класс:

class HomeView(CreateView):
    """ Render the home page """

    template_name = 'index.html'

    def get_context_data(self, **kwargs):
        kwargs['publication_list_newest'] = Publication.objects.filter(new_publication=True).order_by('pub_id')
        return super(HomeView, self).get_context_data(**kwargs)

И в моем шаблоне я пытаюсь установить что-то вроде этого:

<div class="row">
      <h3>{% trans 'Newest publications' %}</h3>
      <hr>
      <div id="myCarousel" class="carousel slide" data-ride="carousel">
        <!-- Indicators -->
        <ol class="carousel-indicators">
          {% for publication in publication_list_newest %}
            <li data-target="#myCarousel" data-slide-to="{{ publication.id }}" class="active"></li>
          {% endfor %}
        </ol>

        <!-- Wrapper for slides -->
        <div class="carousel-inner">
          <div class="item active">
            <img src="la.jpg" alt="Cover page" style="width:100%;">
          </div>
          {% for publication in publication_list_newest %}
            <div class="item">
              <img src="{{ publication.cover.url }}" alt="{{ publication.cover }}" style="width:100%;">
              <div class="carousel-caption">
                <h3>{{ publication.title }} ({{ publication.pub_id }})</h3>
              </div>
            </div>
          {% endfor %}
        </div>

        <!-- Left and right controls -->
        <a class="left carousel-control" href="#myCarousel" data-slide="prev">
          <span class="glyphicon glyphicon-chevron-left"></span>
          <span class="sr-only">Previous</span>
        </a>
        <a class="right carousel-control" href="#myCarousel" data-slide="next">
          <span class="glyphicon glyphicon-chevron-right"></span>
          <span class="sr-only">Next</span>
        </a>
      </div>
    </div>

Таким образом, изображения отображаются автоматически, поскольку учитывается атрибут new_publication.Но пользователь должен получить возможность самостоятельно выбирать, какая публикация будет отображаться в карусели.

...