Форум сайта python.su
0
Сел за изучение данного фреймоврка и возник вопрос по сохранению моделей. Имеем следующий пример:
class A(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=30)
class B(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=30)
aItems = models.OneToOneField(A)
a = A(title="123")
b = B(title="333", aItems = a)
b.save()
Офлайн
41
ну если ты не созранишь А, то не будет id поля в базе, выведи a.id до сейва и после…
Офлайн
41
да и пихать id в модель необязательно, это поле есть во всех моделях по дефолту
Офлайн
0
> ну если ты не созранишь А, то не будет id поля в базе, выведи a.id до сейва и после…
я понимаю что будут отличаться (конкретный id vs None); но почему django не может сам сейвануть сначала A, а потом заюзать его id для сейва B? просто сохранять всю структуру в таком ручном режиме - как-то совсем не радует.
ps: знаю, что дефолтовое поле; но как-то привык для ясности прописывать руками
Офлайн
41
потому что это было б неочевидно и глупо
Офлайн