Форум сайта python.su
Есть такая модель
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)
Офлайн
Сам виноват. Обращался к атрибуту, хотя здесь получаю коллекцию данных из базы. Нужно делать get() (хотя как я понял всегда выполняется filter(), только потом len(obj) == 1 и результат возвращается, либо исключение).
Офлайн