Size: a a a

Django [ru] #STAY HOME

2019 December 05

i

ilya in Django [ru] #STAY HOME
ок
источник

S🇷

Spacehug 🇷🇺 in Django [ru] #STAY HOME
Spacehug 🇷🇺
Добрый день! Вопрос таков:

Есть django-проект с djangorestframework, memcached и pylibmc.
Есть вьюха, ответ от которой я хочу положить в кеш.
Есть модель, при изменении которой я по сигналам post_save и post_delete хочу инвалидировать не весь кеш, а только тот, который касается этой модели.

Memcached не даёт возможность посмотреть все ключи и выбрать нужный (нужно знать ключ заранее), ключ генерируется из реквеста, то есть надо либо реквест скормить в сигнал, либо из вьюхи присобачить полученный ключ в класс модели, но и то, и другое - сомнительные варианты. cache.clear() удаляет вообще весь кеш, но работает. Вопрос именно в удалении конкретной записи в кеше по ключу через cache.delete(<Что тут?>).

Как правильно реализовать инвалидацию кеша по сигналам?
Бамп вопросу
источник

BE

Black Eyes in Django [ru] #STAY HOME
@dantyan подскажи, как до валидации добавить агрумент? IP в моем случае
Я что-то всяко попробовал уже. IP в БД как blank=False короче говоря

form_comment = CommentForm(request.POST or None, request.FILES or None)
Вот тут
if form_comment.is_valid():
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Black Eyes
@dantyan подскажи, как до валидации добавить агрумент? IP в моем случае
Я что-то всяко попробовал уже. IP в БД как blank=False короче говоря

form_comment = CommentForm(request.POST or None, request.FILES or None)
Вот тут
if form_comment.is_valid():
Написать свой метод для валидации, может?  Или я что-то не так понял, может
источник

BE

Black Eyes in Django [ru] #STAY HOME
tot samiy neizvestniy
Написать свой метод для валидации, может?  Или я что-то не так понял, может
В общем в form_comment доложитть аргумент прямо не вариант?
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Black Eyes
В общем в form_comment доложитть аргумент прямо не вариант?
А зачем это тебе вообще? Можешь описать?
источник

BE

Black Eyes in Django [ru] #STAY HOME
tot samiy neizvestniy
А зачем это тебе вообще? Можешь описать?
Тупо IP добавить и все
просто я хочу, чтобы blank=False стояло в models
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Ничего не понял.

Есть модель, в ней есть поле ip c  blank=False?
источник

BE

Black Eyes in Django [ru] #STAY HOME
tot samiy neizvestniy
Ничего не понял.

Есть модель, в ней есть поле ip c  blank=False?
да
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Так. И форма не проходит валидацию, потому что в ней нет ip?
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
И вроде ж по дефолту итак blank False
источник

BE

Black Eyes in Django [ru] #STAY HOME
tot samiy neizvestniy
Так. И форма не проходит валидацию, потому что в ней нет ip?
Да дружище, я же описал, зачем ты переспрашиваешь?)
источник

BE

Black Eyes in Django [ru] #STAY HOME
tot samiy neizvestniy
И вроде ж по дефолту итак blank False
Я знаю, просто я подчеркнуд этот момент, чтобы мне не советовали бланк тру поставить
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Так а ты на ModelForm собрал форму, что ли?
источник

BE

Black Eyes in Django [ru] #STAY HOME
tot samiy neizvestniy
Так а ты на ModelForm собрал форму, что ли?
да )
class CommentForm(forms.ModelForm):
   class Meta:
       model = Comment
       fields = "all"
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
А
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Так исключи это поле
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
exclude = ('ip',)
источник

p

palmero in Django [ru] #STAY HOME
Black Eyes
да )
class CommentForm(forms.ModelForm):
   class Meta:
       model = Comment
       fields = "all"
в fields лучше напиши список требуемых полей, а в save() получи instance и докинь туда айпи
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Просто при сохранении формы добавить айпи придётся
источник