Создание экземпляра объекта с атрибутом foreignkey с помощью оболочки Django

#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.