Найти - Пользователи
Полная версия: Работа с моделью, проверка поля
Начало » Django » Работа с моделью, проверка поля
1
k0st1an
Есть такая модель

 class Node(models.Model):
    user = models.ForeignKey(User)
    is_active = models.BooleanField(default=False)
    api_token = models.CharField(max_length=256, blank=True)
    objects = UserNodes()

И менеджер

 class UserNodes(models.Manager):
    def detail(self, request, pk):
        d = self.filter(user=request.user, pk=pk, is_active=True)
        if not d.api_token:
            messages.warning(
                request, 'Для установки сервера следует указать API token')
        return d

И вьюха

 @method_decorator(login_required(redirect_field_name=None), name='dispatch')
class NodeDetail(DetailView):
    def get_queryset(self):
        pk = self.kwargs.get(self.pk_url_kwarg)
        return Node.objects.detail(self.request, pk)

Вот так выпадает ошибка 'QuerySet' object has no attribute ‘token’. Как бы мне проверить что поле не пустое?? Может мне не нужно вообще в другом месте делать проверку?
k0st1an
Сам виноват. Обращался к атрибуту, хотя здесь получаю коллекцию данных из базы. Нужно делать get() (хотя как я понял всегда выполняется filter(), только потом len(obj) == 1 и результат возвращается, либо исключение).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB