Size: a a a

Django [ru] #STAY HOME

2020 January 03

Do

Descending order in Django [ru] #STAY HOME
Nire
Гайз, кто ставил сервера локально. Мы сделали такую штуку под компы, каковы шансы что что-то произойдёт нехорошее? На 5 серверов. Не сгорит ничего?
У вас один удлиннитель в другой включен. Проверьте мощности всех потребителей, в сети про это подключение почитайте, чтоб не вышло боком потом.
источник

G

Graywolf in Django [ru] #STAY HOME
без синей изоленты все фигня
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Добрый день. Подскажите, как сделать, чтобы при нажатии кнопки происходило удаление из бд экземпляра, который сейчас отрендерен. Вы наверное еще ничего не поняли, но сейчас я все объясню.
У меня есть страница PostDetail, там есть кнопка "Удалить", я хочу, чтобы при нажатии удалялся из БД пост, и ридериктело на страницу "deleted/"
Выглядит это дело вот так:
HTML
<form action="{% url 'post_delete_url' %}">
           {% csrf_token %}
           <button type="submit">Delete</button>
       </form>
Вьюха
model = Post
   def post(self, slug):
       obj = self.model.objects.get(slug__iexact=slug)
       obj.delete()
       redirect('/deleted')
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
И я какую-то полную фигню делаю по ощущениям
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Вся проблема в том, что я не знаю как из шаблона передать slugво вьюху нормально
источник

N

N1LEX in Django [ru] #STAY HOME
Изучить гайды сначало
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Я читал гайды, там везде отдельную страницу создают для удаления экземпляра
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Т.е. отдельная страница, на которой рендерится экземпляр, а потом удаляется
источник

N

N1LEX in Django [ru] #STAY HOME
def delete_post(request, slug):
   obj = Post.objects.get(slug=slug)
   obj.delete()
   return redirect('/deleted')
источник

N

N1LEX in Django [ru] #STAY HOME
Не ттдельную страницу, а отдельный обработчик
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Таки чем кроме названия с аргументов это отличается от моей функции?
источник

N

N1LEX in Django [ru] #STAY HOME
self.model
источник

N

N1LEX in Django [ru] #STAY HOME
Этим.
источник

MB

Max Block in Django [ru] #STAY HOME
Приветствую!

Есть вью на базе ListView. На этой странице есть форма, которая определяется GET значениями,а queryset определяется данными этой формы.

Другими словами: есть страница, на ней есть форма фильтрации: категория, кол-во товаров на страницу и т.п. И ниже выводится список, который был найден по этой форме фильтрации.

Подскажите, как внутри метода get_queryset получить объект формы, который был задан внутри метода get_context_data? Аль возможно это как-то совсем по другому делается.

Упрощенно код вьюхи выглядит так:

class PoductsView(ListView):
   template_name = "products.html"

   def
get_context_data(self,**kwargs):
       context = super().get_context_data(**kwargs)
       context["form"] = ProductFilterForm(self.request.GET)
       return context

   def get_queryset(self):
       form = тут надо как-то получить объект form, который был определен в методе get_context_data
       return services.get_products(**form.cleaned_data)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ну тебе по сути форма не нужна в get_queryset
источник

MB

Max Block in Django [ru] #STAY HOME
У меня данные берутся из метода product_service.get_products(category: Optional[str], name: Optional[str], limit: int). Этих параметров много, и их как раз и хочется взять из формы.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
просто берешь

if self.request.GET.get('category'):
   queryset = queryset.filter(category_id=self.request.GET.get('category'))
источник

DT

Dan Tyan in Django [ru] #STAY HOME
я бы на твоем месте попробовал django-filter
источник

MB

Max Block in Django [ru] #STAY HOME
Да, до этого я так и делал. Вообще без формы, просто в шаблоне сделал html-ку и параметр каждый получал из self.request.GET.

Но вот захотелось заиспользоваться django.form 🙂 В теории эта штука звучит удобно. Т.е. в шаблоне нет никакого html кода, все выводится как {% crispy form %}. Сама форма определена в forms.py. И form.cleaned_data — это как раз и есть те параметры, которые надо передать в product_service.get_products(**params)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Max Block
Да, до этого я так и делал. Вообще без формы, просто в шаблоне сделал html-ку и параметр каждый получал из self.request.GET.

Но вот захотелось заиспользоваться django.form 🙂 В теории эта штука звучит удобно. Т.е. в шаблоне нет никакого html кода, все выводится как {% crispy form %}. Сама форма определена в forms.py. И form.cleaned_data — это как раз и есть те параметры, которые надо передать в product_service.get_products(**params)
источник