Допустим, у меня есть следующие простые Django модели:
class Club(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Student(models.Model):
name = models.CharField(max_length=50, unique=True)
club = models.ForeignKey(Club, on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.name
И я создаю следующие объекты:
club1 = Club.objects.create(name="Club1")
student1 = Student.objects.create(name="Student1", club=club1)
print(club1.student_set.all())
# <QuerySet [<Student: Student1>]>
Теперь я собираюсь создать экземпляр второго ученика объект на клубном объекте, но НЕ ДАЛЕЕ сохранить его в базе данных. Есть ли способ связать всех учеников с club1
ДО того, как он был записан в БД? Похоже, использование стандартного подхода просто возвращает объекты, хранящиеся в БД:
student2 = Student(name="Student2", club=club1)
print(club1.student_set.all())
# <QuerySet [<Student: Student1>]>
# Goal is to get this:
# <QuerySet [<Student: Student1>, <Student: Student2>]>
Причина, по которой мне это нужно, заключается в некоторой проверке состояния промежуточных данных.