#shell #django-models #foreign-keys
#оболочка #django-модели #внешние ключи
Вопрос:
мой вопрос довольно прост :
В оболочке Django как создать экземпляр объекта, для которого требуется атрибут внешнего ключа?
models.py
class Musician(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
instrument = models.CharField(max_length=100)
class Album(models.Model):
artist = models.ForeignKey(Musician)
name = models.CharField(max_length=100)
release_date = models.DateField()
num_stars = models.IntegerField()
В оболочке django…
p = Person(
first_name="Fred"
,last_name="Flintstone"
,instrument="guitar"
)
p.save()
...
a = Album(
artist = " " #<------ WHAT DO I PUT HERE ? :)))))
,name="u rock "
,release_date ="today"
,num_stars="4"
)
a.save()
Спасибо!
Amadeus
Ответ №1:
При создании экземпляра модели поля ForeignKey должны быть установлены на экземпляр соответствующей связанной модели. В вашем случае:
p = Musician(
first_name="Fred",
last_name="Flintstone",
instrument="guitar"
)
p.save()
import datetime
a = Album(
artist=p,
name="u rock",
release_date=datetime.datetime.now().date(),
num_stars=4
)
a.save()
Обратите внимание, что я также исправил некоторые из ваших опечаток и использовал правильные типы данных для атрибутов release_date и num_stars.