Модель Django не определена
Я работаю над некоторыми представлениями и использую модель уже около недели, и до этого момента не было никаких проблем: Я ничего не менял, только добавил новое поле в модель, и теперь myModel.objects.create() выдает мне ошибку "имя не определено". У меня есть импортированная модель и, как я уже сказал, я работал над этим неделю и создал несколько моделей, используя точно такой же код.
модели:
class Prescription(models.Model):
prescription_id = models.CharField(max_length=26, default=prescription_id, editable=False, unique=True) # THIS IS THE FIELD I ADDED BEFORE HAVING THIS ERROR
appointment = models.ForeignKey('booking.Appointment', on_delete=models.SET_NULL, null=True, blank=True)
doctor = models.ForeignKey('core.Doctor', on_delete=models.CASCADE)
patient = models.ForeignKey('core.Patient', on_delete=models.CASCADE)
overriden_date = models.DateField(null=True, blank=True)
control = models.BooleanField(default=False)
control_date = models.DateField(null=True, blank=True)
send_email = models.BooleanField(default=False)
posted = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class Meta:
verbose_name = "Ordonnance"
verbose_name_plural = "Ordonnances"
def __str__(self):
return str(self.id)
class PrescriptionElement(models.Model):
prescription = models.ForeignKey('Prescription', on_delete=models.CASCADE)
drug = models.ForeignKey(Drug, on_delete=models.CASCADE, null=True)
custom = models.CharField("Elément", max_length=25, null=True, blank=True)
dosage = models.CharField(max_length=45, null=True, blank=True)
posologie = models.CharField(max_length=256, null=True, blank=True)
duration = models.CharField("Durée", max_length=15, null=True, blank=True)
просмотров:
PrescriptionElement.objects.create(prescription=prescription, drug=listemedicament, custom=medicament, dosage=dosage, posologie=posologie, duration=duree)
<
name 'PrescriptionElement' is not defined
Я устранил проблему, удалив любые циркулярные связи между несколькими файлами. Циркулярные импорты - единственная проблема, вызывающая эту проблему. Значение по умолчанию prescription_id было определено в файле utils.py, а в utils.py есть некоторые функции, наследующие модели из файла models.py. Удаление этой круговой связи устраняет эту проблему.
Кроме того, использование этого формата для определения ForeignKeys ('booking.Appointment') является лучшим выбором, чтобы избежать импорта.