LINUX.ORG.RU

Поменять булевское значение

 , ,


0

1

Подскажите, как можно поменять булевское значение поля модели из шаблона. Т.е. я кликаю по ссылке, и поле Y таблицы X становится True. Вопрос в том, как оформить запрос во view?

может что-то вроде:

def my_views ( request, id = "" ):
    query = X.objects.get( id = int(id), Y = True ) # но это бред:)
    query.save()
    return redirect ( ... )

Заранее спасибо)!

Достаёшь объект из orm, меняешь поле, делаешь obj.save()

Да, по-моему, int(id) не обязательно если у тебя в urlconf указано что id это int. Посмотри доки.

true_admin ★★★★★
()
Ответ на: комментарий от KernelPanic

Ахтунг, джангу видел в последний раз лет 5 назад, программировал на ней три недели, рассказываю то что помню. В тутториале вот так говорили делать:

obj = X.objects.get(id=id)
obj.Y = True
obj.save()

true_admin ★★★★★
()

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

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

если надо поменять значение значит объект надо найти и сохранить. найти, сохранить, разве этого нет в туториале по джанго? самом базовом. все вопросы что ты задаешь покрывает введение на пол часа чтения, это даже не документация, не апи референс. это введение. человеческим языком написанное. ну что ж ты такой :(

trashymichael ★★★
()
Ответ на: комментарий от KernelPanic

ты сделал правильно, но зачем ты каждый день создаешь по 5 топиков, по топику на каждое предложение из туториала?

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

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

я так и делаю. Ктому же кому-то, в будущем, пригодятся треды, которые я создаю)

KernelPanic
() автор топика

Немного не по твоему вопросу, но

  query = X.objects.get( id = int(id), Y = True )
и тут тебе в id приходит 'adsads' и ...

ggrn ★★★★★
()
Последнее исправление: ggrn (всего исправлений: 1)
Ответ на: комментарий от ggrn

и тут тебе в id приходит 'adsads' и ...

слава богу ничего страшного не произойдёт, транзакции и обработчик эксепшенов верхнего уровня страшные силы :)

true_admin ★★★★★
()
Ответ на: комментарий от KernelPanic

Осиль джанго-бук, иначе получается лютая мешанина.

omegatype ★★★
()
X.objects.filter(id=id).update(y=True)
redixin ★★★★
()
Ответ на: комментарий от KernelPanic

Заверни в try/except, чтобы ловило DoesNotExist и выбрасывало Http404. А иначе у тебя будет 500-я ошибка при отсутствующем id, что некорректно.

И да, если у тебя id это int, то давать ему дефолтное значение «» тоже некорректно, хотя и можно. Если у тебя в urls.py уже есть регэксп с int-ом, то дефолтное значение не нужно - всё не прошедшее под регэксп будет выдавать 404 сразу. Если же у тебя два урла на один view (с id и без), то красивее будет сделать дефолтным None и проверять его в коде.

risenshnobel ★★★
()
Ответ на: комментарий от true_admin

просто в sqlAlchemy если

q = Session.query(Obj).filter(Obj.id == id).all()
и в id будет не int, то это свалиться с ошибкой. Такого же поведения я ожидал и в djange

ggrn ★★★★★
()
Ответ на: комментарий от KernelPanic

Вынужден сказать тебе правду: твои треды - это мусор, они никому не пригодятся.

anti_social
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.