Я создал две модели в своем приложении: «Предписание» и «Prescription_status». Когда пользователь нажимает «Сохранить» на форме модели «New_prescription», мне нужно добавить «Prescription_status» в «Prescription».
Например, ниже я бы хотел добавить статус «Черновик» (PK = 1). Я не хочу устанавливать статус по умолчанию. Я пытался все, что я скучаю ?? Заранее спасибо!
models.py
# Static Prescription Status Types
class Prescription_status(models.Model):
status = models.CharField(max_length=200)
status_definition = models.TextField()
def __str__(self):
return '%s' % (self.status)
# Prescription Model
class Prescription(models.Model):
order_id = models.AutoField(primary_key=True, unique=True)
status = models.ForeignKey(Prescription_status, models.SET_NULL, null=True)
Я сохранил следующие объекты Prescription_status в базе данных, на которые я хотел бы сослаться, когда пользователи сохраняют или редактируют рецепты:
status_id для статуса «Черновик» = 1
status_id для статуса «Готов к подписанию» = 2
status_id для статуса «Подписано и авторизовано» = 3
диаграмма базы данных, показывающая PK для каждого статуса
forms.py
class PrescriptionForm(forms.ModelForm):
class Meta:
model = Prescription
fields = ('medication', 'quantity', 'directions', 'refills', 'earliest_permitted_fill_date', 'daw',)
widgets = {
'earliest_permitted_fill_date': DatePickerInput(), # default date-format %m/%d/%Y will be used
}
views.py
def new_rx(request):
if request.method == "POST":
form = PrescriptionForm(request.POST)
if form.is_valid():
prescription = form.save(commit=False)
prescription.status = Prescription_status.objects.get(pk=form.cleaned_data['1'])
prescription.save()
return redirect('home')
else:
form = PrescriptionForm()
return render(request, 'app/new_rx.html', {'form': form})
Вышеуказанное приводит к «Ошибка имени: имя« Prescription_status »не определено». Как правильно это сделать?