Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
171 views
in Technique[技术] by (71.8m points)

python - Why i get this value

I want to when i click on the user discharge button it will go to the page and the all user information take automatically. But i cannot get this value. Here is the image in the discharge button i click but its shows like this.

enter image description here

Here is my code : views.py

def discharge_view(request, pk):
form = DischargForm()
if request.method == 'POST':
    form = DischargForm(request.POST)
    if form.is_valid():
        form.save()
        messages.success(request, 'Successfull')
        return redirect('discharge-patient')
context = {
    'form': form,
}        

return render(request, 'hospital/discharge.html', context)

forms.py :

class DischargForm(forms.ModelForm):
class Meta:
    model = PatientDischarge
    fields = ('assign_doctor', 'admitted', 'release_date', 'medicine_cost', 'other_charge')

    widgets = {
        'assign_doctor': forms.Select(attrs={'class': 'form-control'}),
        'admitted': forms.Select(attrs={'class': 'form-control'}),
        'release_date': forms.TextInput(attrs={'class': 'form-control'}),
        'medicine_cost': forms.TextInput(attrs={'class': 'form-control'}),
        'other_charge': forms.TextInput(attrs={'class': 'form-control'}),

    }

models.py

class PatientDischarge(models.Model):
assign_doctor = models.ForeignKey(Doctor, on_delete=models.CASCADE)
admitted = models.ForeignKey(Admitted, on_delete=models.CASCADE)
release_date = models.DateField(auto_now_add=False)
medicine_cost = models.IntegerField(null=True)
other_charge = models.IntegerField()

def __str__(self):
    return self.admitted.patient_name if all([self.admitted, self.admitted.patient_name]) else 0

def days_count(self):
    return self.release_date - self.admitted.admited_date if all([self.admitted, self.admitted.admited_date]) else 0

def room_bill(self):
    return self.days_count() * self.admitted.room_service if all([self.admitted, self.admitted.room_service])  else 0

def total_bill(self):
    return self.room_bill().days + self.medicine_cost + self.other_charge

discharge.html

<form action="" method="POST" enctype="multipart/form-data">
                            {% csrf_token %}
                            {% for fields in form %}
                                <div class="form-group"></div>
                                {{ fields.label_tag }}
                                {{ fields }}
                            {% endfor %}
                            <br>
                            <input type="submit" value="Submit">

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To pass an instance to the form you can do this form = DischargForm(instance=<DischargeInstance>) and the template will have pre-filled values in the form as per the instance.

Can you provide your models.py.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...