Найти - Пользователи
Полная версия: Не могу разобраться, нужна помощь.
Начало » Django » Не могу разобраться, нужна помощь.
1
mikett
Всем доброго времени суток.
Нужна помощь вот с такой вот штукой. Выдается при попытке сохранения Заявки
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'а из своей модели. Прощу прощения если спрашиваю какую-нибудь банальность.
FishHook
Потому что вот тут Вы получаете не одного юзера, а набор юзеров.
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'>
>>> 
mikett
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]
Решила проблему.
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