如何在 Django 中使用多对一关系将一个模型对象添加到另一个模型的 ModelForm 模板?

维扬卡特什·拉索德

我正在尝试创建一个医院管理系统,其中有两个 ModelForm,一个 ModelForm 创建患者对象,而模型 2 的另一种形式用于承认 Patient,这意味着它使用具有新字段的新表单模板中的患者对象并创建新 ID其中也有模型一id(患者ID)和模型二i​​d(IPD ID),模型二与带有患者ID的模型一链接,一个患者可以有多个Ipd id models.py:

class Patient(models.Model): 

    name = models.CharField(max_length=200);
    phone = models.CharField(max_length=20);
    address = models.TextField();
    patient_id = models.AutoField(primary_key=True);
    gender= models.CharField(choices=GENDER, max_length=10)
    consultant = models.CharField(choices=CONSULTANT, max_length=20)

    def __str__(self):
        return self.name 

class Ipd(models.Model):

    reason_admission = models.CharField(max_length=200, blank=False)
    presenting_complaints = models.CharField(max_length=200,)
    ipd_id = models.AutoField(primary_key=True)
    rooms = models.ForeignKey(Rooms,on_delete=models.CASCADE, blank=False)
    date_of_admission = models.DateField(("Date"),
        default=datetime.date.today)  
    patient = models.ForeignKey(Patient, on_delete=models.CASCADE, blank=False, default = "")

    def __str__(self):
        return self.patient.name

形式.py:

class PatientForm(forms.ModelForm):


    class Meta:
        model = Patient
        fields = ['name','phone','address','patient_id','consultant','Gender']

class IpdForm(ModelForm):

    class Meta:
        model = Ipd

        fields = ['patient', 'reason_admission', 'presenting_complaints', 

                'rooms', 'date_of_admission']
    def __init__(self, *args, **kwargs):
    super(IpdForm, self).__init__(*args, **kwargs)
    self.fields['patient']=forms.ModelChoiceField(queryset=Patient.objects.all())

视图.py:

@login_required
def show(request, patient_id):
    patient = Patient.objects.filter(pk=patient_id)
    return render(request, 'show.html', {'patient': patient})

@login_required
def new(request):
    if request.POST:
        form = PatientForm(request.POST)
        if form.is_valid():
            if form.save():
                return redirect('/', messages.success(request, 'Patient is successfully created.', 'alert-success'))
            else:
                return redirect('/', messages.error(request, 'Data is not saved', 'alert-danger'))
        else:
            return redirect('/', messages.error(request, 'Form is not valid', 'alert-danger'))
    else:
        form = PatientForm()
        return render(request, 'new.html', {'form':form})

@login_required
def edit(request, patient_id):

    if request.POST:
        patient = Patient.objects.get(pk=patient_id)
        form = PatientForm(request.POST, instance=patient)

        if form.is_valid():

            if form.save():
                return redirect('/', messages.success(request, 'Patient is successfully updated.', 'alert-success'))
            else:
                return redirect('/', messages.error(request, 'Data is not saved', 'alert-danger'))
        else:
            return redirect('/', messages.error(request, 'Form is not valid', 'alert-danger'))
    else:
        form = PatientForm(instance=patient)
        return render(request, 'edit.html', {'form':form})



@login_required
def ipd(request, patient_id):
    object = get_object_or_404(Ipd, patient__patient_id=patient_id)
    if request.method == "POST":
        formtwo = IpdForm(request.POST)
        if formtwo.is_valid():
            instance = formtwo.save(commit=False)
            instance.save()
        else:
            return HttpResponse(formtwo.errors) 
    else:
        formtwo = IpdForm()

    return render(request, 'newipd.html', {'object': object, 'form2': formtwo})

网址.py:

url(r'^order/ipd/(?P<patient_id>\d+)/$', my_order.ipd, name='ipd'),

html :

{% for field in form2.visible_fields %}
<div class="card-panel">                                                                                 
<span class="blue-text text-darken-2">Name : {{name}}</span> <br>                                                 
<span class="blue-text text-darken-2">Phone : {{ phone  }}</span><br>                                                  
<span class="blue-text text-darken-2">Address : {{ address  }}</span> 
<br>                                                                                         
<span class="blue-text text-darken-2">Gender : {{ gender  }}</span><br>                                            
</div>

{% endfor %}
艾哈迈德·阿卜杜勒·萨拉姆

您需要在 IPD ModelForm 的 init 函数中为患者模型添加模型选择字段,如下所示

def __init__(self, *args, **kwargs):
    super(IpdForm, self).__init__(*args, **kwargs)
    self.fields['patient']=forms.ModelChoiceField(queryset=Patient.objects.all())

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Django中,如何在保存之前将另一个实例添加到内联模型中?

来自分类Dev

如何在另一个标签中使用Django模板标签?

来自分类Dev

如何在另一个标签中使用Django模板标签?

来自分类Dev

Django,如何将数据对象从一个模板传递到另一个模板

来自分类Dev

Django) 如何在多对多关系中查询另一个模型的字段

来自分类Dev

如何在Django模板中使Modelform可编辑外键字段?

来自分类Dev

在 Django 中,如何从另一个模板引用一个模板?

来自分类Dev

如何在 Django 中使用外键将对象从一个模型获取到另一个模型

来自分类Dev

如何在Django模板中显示模型中的一个字段

来自分类Dev

如何在Django模板中链接到另一个用户

来自分类Dev

如何在一个Django模型创建一个链接,指向另一个模型?

来自分类Dev

Django 1.6:在另一个模板中显示特定的模型对象

来自分类Dev

在Django模板中,如何将变量从一个索引迭代到另一个索引?

来自分类Dev

如何在Webapi dotnet 3中使用IdentityUser将一个多对多关系添加到另一个实体

来自分类Dev

Django,如何将模型类导入另一个模型类?

来自分类Dev

如何在Django中将一个模型的多个记录连接到另一个模型?

来自分类Dev

如何在 Django 中将值从一个模型存储到另一个模型?

来自分类Dev

如何在Django的多选ModelForm中使用utf8?

来自分类Dev

如何在Django 3.0的ModelForm中使用DatePicker?

来自分类Dev

如何在Django的多选ModelForm中使用utf8?

来自分类Dev

如何在删除模型时使用另一个模板:backbone.js和marionettejs

来自分类Dev

如何获得一个按钮以链接到Django中的另一个HTML模板?

来自分类Dev

如何为抽象模型创建Django ModelForm?

来自分类Dev

如何在 Django ModelForm 中引用当前对象?

来自分类Dev

Django:如何在一个模板中使用两个以上的基于类的通用视图

来自分类Dev

如何在Rails中将模型的实例添加到另一个模型的实例

来自分类Dev

Django:一个用于子类的ModelForm

来自分类Dev

如何在Django的相同模型中调用/引用另一个属性

来自分类Dev

如何在Django的一页上具有2个模型/视图/模板?

Related 相关文章

  1. 1

    在Django中,如何在保存之前将另一个实例添加到内联模型中?

  2. 2

    如何在另一个标签中使用Django模板标签?

  3. 3

    如何在另一个标签中使用Django模板标签?

  4. 4

    Django,如何将数据对象从一个模板传递到另一个模板

  5. 5

    Django) 如何在多对多关系中查询另一个模型的字段

  6. 6

    如何在Django模板中使Modelform可编辑外键字段?

  7. 7

    在 Django 中,如何从另一个模板引用一个模板?

  8. 8

    如何在 Django 中使用外键将对象从一个模型获取到另一个模型

  9. 9

    如何在Django模板中显示模型中的一个字段

  10. 10

    如何在Django模板中链接到另一个用户

  11. 11

    如何在一个Django模型创建一个链接,指向另一个模型?

  12. 12

    Django 1.6:在另一个模板中显示特定的模型对象

  13. 13

    在Django模板中,如何将变量从一个索引迭代到另一个索引?

  14. 14

    如何在Webapi dotnet 3中使用IdentityUser将一个多对多关系添加到另一个实体

  15. 15

    Django,如何将模型类导入另一个模型类?

  16. 16

    如何在Django中将一个模型的多个记录连接到另一个模型?

  17. 17

    如何在 Django 中将值从一个模型存储到另一个模型?

  18. 18

    如何在Django的多选ModelForm中使用utf8?

  19. 19

    如何在Django 3.0的ModelForm中使用DatePicker?

  20. 20

    如何在Django的多选ModelForm中使用utf8?

  21. 21

    如何在删除模型时使用另一个模板:backbone.js和marionettejs

  22. 22

    如何获得一个按钮以链接到Django中的另一个HTML模板?

  23. 23

    如何为抽象模型创建Django ModelForm?

  24. 24

    如何在 Django ModelForm 中引用当前对象?

  25. 25

    Django:如何在一个模板中使用两个以上的基于类的通用视图

  26. 26

    如何在Rails中将模型的实例添加到另一个模型的实例

  27. 27

    Django:一个用于子类的ModelForm

  28. 28

    如何在Django的相同模型中调用/引用另一个属性

  29. 29

    如何在Django的一页上具有2个模型/视图/模板?

热门标签

归档