Python Django Modelform-将字段值设置为外键

Python 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=

我在我的应用程序中创建了两个模型:“处方”和“处方状态”。当用户单击“新处方”模型表单上的“保存”时,我需要将“处方状态”添加到“处方”中

例如,下面我想添加“草稿”状态(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)
我已将以下处方\ 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”)。