Может ли администратор Django редактировать страницу base.html из бэкэнда? - PullRequest
0 голосов
/ 03 апреля 2019

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

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

Я пробовал использовать base_view (запрос), но не работает (base.html никогда не вызывается, поэтому я предполагаю, что именно поэтому и очевидно, что расширенные страницы не изменяют base.html)

def base_view(request):
    context = {
        'post': BackgroundImage.objects.last()
    }
    return render(request, 'base.html', context)



Итак, вот что у меня есть:

models.py:


class BackgroundImageModel(models.Model):
    image = models.ImageField(default="default.jpg", upload_to='background_pics')
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    def save(self):
        super().save()

        img = Image.open(self.image.path)

        if img.height > 2000 or img.width > 2000:
            output_size = (2000, 2000)
            img.thumbnail(output_size)
            img.save(self.image.path)


views.py:


class BackgroundImage(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
    model = BackgroundImageModel
    fields = ['image']

base.html:


{% if background %}
          <body style="background:
          url({{ background.image.url }})
          repeat fixed center; 
          margin: 5rem 0 2rem 0;">
{% else %}
          <body style=" margin: 5rem 0 2rem 0;">
{% endif %}

1 Ответ

0 голосов
/ 04 апреля 2019

Вы передаете изображение как post в вашем context, но вы используете background в html.

Попробуйте:

{% if background %}
      <body style="background:
      url({{ post.image.url }})
      repeat fixed center; 
      margin: 5rem 0 2rem 0;">
{% else %}
      <body style=" margin: 5rem 0 2rem 0;">
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...