Python Django Modelform-将字段值设置为外键
我在我的应用程序中创建了两个模型:“处方”和“处方状态”。当用户单击“新处方”模型表单上的“保存”时,我需要将“处方状态”添加到“处方”中 例如,下面我想添加“草稿”状态(PK=1)。我不想设置默认状态。我什么都试过了,我错过了什么??提前谢谢 models.pyPython Django Modelform-将字段值设置为外键,python,django,django-forms,modelform,Python,Django,Django Forms,Modelform,我在我的应用程序中创建了两个模型:“处方”和“处方状态”。当用户单击“新处方”模型表单上的“保存”时,我需要将“处方状态”添加到“处方”中 例如,下面我想添加“草稿”状态(PK=1)。我不想设置默认状态。我什么都试过了,我错过了什么??提前谢谢 models.py # Static Prescription Status Types class Prescription_status(models.Model): status = models.CharField(max_length=
# 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)
我已将以下处方\ U状态对象保存到数据库中,用户保存或编辑处方时,我希望引用该数据库:
“草稿”状态的状态\u id=1
“准备签字”状态的状态\u id=2
“已签署并授权”状态的状态\u id=3 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=prescription\u status.objects.get(pk=form.cleaned\u data['1'])KeyError:'1'[09/Jul/2019 03:40:36]“POST/new\u rx HTTP/1.1“500 64402”好的,我做了一点修改,这似乎有效:prescription.status=prescription\u status.objects.get(pk=1)。非常感谢。只是想让大家知道,bc这也让我抓狂,你也可以使用:prescription.status=prescription\u status.objects.get(status=“Draft”)。你是否从中导入了它。模型导入prescription\u status?谢谢你的回复!我刚刚这么做了,但现在我有了一个错误:“prescription.status=prescription\u status.objects.get(pk=form.cleaned\u data['1'])KeyError:'1'[09/Jul/2019 03:40:36]“POST/new\u rx HTTP/1.1“500 64402”好的,我做了一点修改,这似乎有效:prescription.status=prescription\u status.objects.get(pk=1)。非常感谢。只是想让大家知道,bc这也让我疯狂,你也可以使用:prescription.status=prescription\u status.objects.get(status=“Draft”)。