Найти - Пользователи
Полная версия: Как определить primary key при создании экземпляра в __init__ ?
Начало » Django » Как определить primary key при создании экземпляра в __init__ ?
1
to_night
Есть два свазанных класса. При создании экземпляра класса Foo,
создется экземпляр связанного класса Bar:

class Foo(models.Model):
    def __init__(self, *args, **kwargs):
        super(Foo, self).__init__(*args, **kwargs)
        if not self.choice_set.filter(name=u'Name'):
            self.choice_set.add(Bar(some=self,
                                    name=u'Name',))
                super(Foo, self).save()
    title = models.CharField()
class Bar(models.Model):
    some = models.ForeignKey(Foo)
    name = models.CharField()

При создании из шаблона, я получаю
ошибку: IntegrityError at /admin/polls/foo/add/
ОШИБКА: нулевое значение в колонке “foo_id” нарушает ограничение NOT NULL,
To есть pk пустое. Как мне определить primary key при инициализации
(не вручную же прописывать)?
Кстати, из консоли создается без ошибок.
FishHook
to_night
self.choice_set.add(Bar(some=self, name=u'Name',))
Нужно просто создать запись в таблице Bar
Bar.objects.create(some=self, name=u'Name')
to_night
FishHook
Нужно просто создать запись в таблице Bar
Bar.objects.create(some=self, name=u'Name')
Увы, та же ошибка.
FishHook
А, ну логично.
to_night
Как мне определить primary key при инициализации
Никак, надо его знать. По какому-то критерию нужно же выбрать запись из БД.
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