Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 5, 2013 10:58:20

mikett
Зарегистрирован: 2013-06-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу разобраться, нужна помощь.

Всем доброго времени суток.
Нужна помощь вот с такой вот штукой. Выдается при попытке сохранения Заявки
Cannot assign "“: ”Zayavka.prodavec“ must be a ”User" instance.


models.py

# coding: utf8
from django.db import models
from accounts.models import User, Manufacturer
...
class Zayavka(models.Model):
    """
    Заявка
    """
...
prodavec = models.ForeignKey(User, verbose_name=u'Продавец', blank=True, null=True )
...
 def save(self, *args, **kwargs):
        """
        Если продавец не указан, задаем значение рандомом
        """
        prods = User.objects.filter(groups__name=u'Продавец', region=self.region, ).order_by('?')[:1]
        if not self.prodavec:
            self.prodavec = prods
        
        super(Zayavka, self).save(*args, **kwargs)
Модель пользователя костамизировал через импорт AbstractUser. Так понимаю что разные пользователи, но как? Ведь импортирую User'а из своей модели. Прощу прощения если спрашиваю какую-нибудь банальность.

Офлайн

#2 Окт. 5, 2013 11:13:55

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не могу разобраться, нужна помощь.

Потому что вот тут Вы получаете не одного юзера, а набор юзеров.

User.objects.filter(groups__name=u'Продавец', region=self.region, ).order_by('?')[:1]

Сравните
>>> s = [1,2,3]
>>> type(s[:1])
<type 'list'>
>>> type(s[0])
<type 'int'>
>>> 



Офлайн

#3 Окт. 5, 2013 11:29:25

mikett
Зарегистрирован: 2013-06-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу разобраться, нужна помощь.

FishHook
Потому что вот тут Вы получаете не одного юзера, а набор юзеров.
Большое спасибо !
Действительно замена
User.objects.filter(groups__name=u'Продавец', region=self.region, ).order_by('?')[:1]
на
User.objects.filter(groups__name=u'Продавец', region=self.region, ).order_by('?')[0]
Решила проблему.

Отредактировано mikett (Окт. 5, 2013 11:43:40)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version