Запрос значения поля - возвращает глобальное имя не определено

Я пытаюсь написать запрос для фильтрации /исключения некоторых объектов из списка, но я получаю сообщение об ошибке.

Мои модели:

class Benefit(TimeStampedModel):
    DEAL = 'D'
    NODEAL = 'N'

    TYPE_CHOICES = (
        (NODEAL, 'Does not need any signed deal'),
        (DEAL, 'Needs a signed deal'),
    )

    name = models.CharField(max_length=200)
    benefit_type = models.CharField(max_length=1, choices=TYPE_CHOICES, default=DEAL)    



class Profile(models.Model):
    user = models.OneToOneField(User)
    benefits = models.ManyToManyField(Benefit, verbose_name="Used benefits", blank=True, null=True, related_name="used_benefit")

Мое мнение:

class ProfilePage(TemplateView):
    template_name = "profile/frontpage.html"

    def get_context_data(self, **kwargs):
            context = super(ProfileFrontpage, self).get_context_data(**kwargs)
            context['unused_benefits'] = Benefit.objects.filter(used_benefit__isnull=True).exclude(benefit_type=='N')
            context['nodeal_benefits'] = Benefit.objects.filter(benefit_type=='N')
            return context

Но это не работает. Я получаю эту ошибку: global name 'benefit_type' is not defined

Я не уверен, почему я получаю эту ошибку? Я не думал, что мне нужно сделать переменную поля модели?

4 голоса | спросил Tomas Jacobsen 6 32013vEurope/Moscow11bEurope/MoscowWed, 06 Nov 2013 16:51:36 +0400 2013, 16:51:36

1 ответ


0

В фильтрах запросов вам не нужно == для сравнения.

Обновите код просмотра как

context['unused_benefits'] = Benefit.objects.filter(used_benefit__isnull=True).exclude((benefit_type = 'N')
context['nodeal_benefits'] = Benefit.objects.filter(benefit_type = 'N')
# ---------------------------------------------------------------^ single =
ответил Rohan 6 32013vEurope/Moscow11bEurope/MoscowWed, 06 Nov 2013 16:55:57 +0400 2013, 16:55:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132