• Как выбрать рандомную запись из БД в Django и вывести результат на шаблон?

    @AlexSabanov
    views.py:
    from django.shortcuts import render
    from django.http import HttpResponse
    
    def index(request):
        random_field = Questions.objects.order_by("?").first()
        context = {
            'question': random_field.question,
            'q_category': random_field.q_category,
        }
        return render(request, 'cards/index.html', {context = context})
    Ответ написан
    Комментировать
  • Как правильно реализовывать post запросы для DetailView?

    @AlexSabanov
    Вот так надо сделать:
    1. Добавляешь миксин
    2. Указываешь форму в form_class
    2.1. Теперь по переменной form в html можешь формировать саму форму
    3. Переопределяешь метод post и добавляешь значения в форму из kwargs или queryset

    class NewsDetailView(ModelFormMixin, DetailView):
        model = NewsModel
        slug_url_kwarg = 'new_slug'  # Обязательно для DetailView ссылается на переменную в url
        form_class = CommentForm
        
    
        def get_context_data(self, *, object_list=None, **kwargs):
            context = super().get_context_data(**kwargs)
            return context
    
        def post(self, request, *args, **kwargs):
            comment_form = CommentForm(data=request.POST)
    
            if comment_form.is_valid():
                comment_form = comment_form.save(commit=False)
                # здесь добавляешь к полям формы новые значения,
                # которые можешь взять из коллекции kwargs,
                # обращаясь по ключу
                comment_form.save()
                return redirect('news', *args, **kwargs)
    Ответ написан
    Комментировать
  • Как сбросить изменения в консоли Chrome?

    @AlexSabanov
    Открываете DevTools -> F1 -> Ставите галочку на Disable cache (while DevTools is open)
    Ответ написан
    Комментировать