2015-04-15 2 views
0

Я беру курс Django на Udemy и решил добавить к тому, что я узнал, изменив макет формы с помощью оператора If.Python - Как получить данные переменной, заданные с помощью методов

В принципе, я хочу проверить, установлен ли для BooleanField для переменной for_y значение true (или если установлен флажок в графическом интерфейсе), но мне трудно понять, как получить доступ, если установлено логическое поле к ложному. Может кто-то указать мне верное направление?

class SignUp(models.Model): 
for_you = models.BooleanField(default=True, verbose_name="Is this purchase for you? If so, check this box.") 
if for_you: 
+0

Четко , 'if for_you == True' или' if for_you == False'. Конечно, если вы хотите сохранить стиль кодирования, который у вас есть: 'if for_you:' или 'if not for_you' – Zizouz212

+0

@ Zizouz212 Последнее проще и точно так же ясно, если выбрано более разумное имя переменной, например. 'if is_for_you:'. – 101

+0

@figs Бывший, хотя, имеет то преимущество, что он более явный. – Zizouz212

ответ

1

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

Я не уверен, что это будет полезно для вас, но вот как получить доступ к for_you в зависимости от того, где вы находитесь относительно класса SignUp.

Внутри метода SignUp:

class SignUp(models.Model): 

    def my_method(self): 
     if self.for_you: 
      # do stuff 

Вне SignUp:

my_sign_up = SignUp() 
if my_sign_up.for_you: 
    # do stuff 
+0

Я действительно не знаю, как задать вопрос, потому что мой жаргон не в порядке (и, следовательно, я не знаю, как искать этот вопрос, несмотря на мои усилия). переменная for_you задается методом объекта. Мне нужен способ проверки правильности метода объекта. Просто проверьте, если for_you == Истина или нет, не дает желаемых результатов. Я не уверен, что это имеет смысл, но я пытаюсь; p – steaksauce

+0

Где вы проверяете 'if for_you == True'; внутри декларации модели или вне декларации модели? – vishen

1

Самый прямой способ проверки, если булево является False использует not:

if not for_you: 
    print 'for_you is False!' 
+0

Строки - это цитаты! – Zizouz212

+0

@ Zizouz212 oops пытается форматировать как код в моем блоке кода, спасибо. – 101

Смежные вопросы