Я пытаюсь построить небольшой проект - проект электронного обучения. Я пытаюсь привязать некоторые упражнения к его идентификатору урока.
Я прочитал django docs и не знаю, следует ли мне использовать поле OneToOne или внешний ключ.
Я попробовал идею с внешним ключом, так как чувствую, что это правильный ответ.
уроки - models.py (Lectie = урок)
from django.db import models
# Create your models here.
class Lectie(models.Model):
YTLink = models.CharField(max_length = 100)
PDFLink = models.CharField(max_length = 100)
упражнения - models.py (intrebare = вопрос, variante = параметры, variantaCorecta = правильный ответ)
from django.db import models
from django.contrib.postgres.fields import ArrayField
from lectii.models import Lectie
# Create your models here.
class Exercises(models.Model):
idLectie = models.ForeignKey(Lectie, on_delete=models.DO_NOTHING)
intrebare = models.CharField(max_length = 300)
variante = ArrayField(models.CharField(max_length=300), null=True)
variantaCorecta = models.IntegerField()
def __str__(self):
return self.intrebare
Я получаю эту ошибку:
You are trying to add a non-nullable field 'idLectie' to exercises without a default; we can't do that (the database needs something to populate existing rows).
Я только добавлю эти вопросы из бэкэнда, они не будут добавлены пользователем, и я получу этот ответ. Джанго не знает, к какому идентификатору привязать упражнение.
Так как должна выглядеть моя модель, чтобы я мог связать упражнение с его уроком? Это нормально, просто добавив пробел = True и изменив идентификатор после этого? Или я должен перейти к отношениям один на один? Благодарю.
Спасибо.