繁体   English   中英

如何在 Django 的 models.py 中显示下拉列表的特定结果

[英]how to display specific results from the dropdown in models.py in django

我只想显示 emp_type 是“医生”的员工?

** 这是 Models.py **

class Employee(models.Model):
    name = models.CharField(max_length=50)
    emp_type_choices = [
        ('Nurse', 'Nurse'),
        ('Doctor', 'Doctor'),
        ('Other', 'Other'),
    ]
    emp_type = models.CharField(
        max_length=6, choices=emp_type_choices, default='Nurse')
    def __str__(self):
        return self.name


class Ticket(models.Model):
    patient = models.CharField(max_length=50)
    doctor = models.ForeignKey(Employee, on_delete=models.CASCADE)
    def __str__(self):
        return self.patient.name

这是我的 Forms.py

class TicketModelForm(forms.ModelForm):
    class Meta:
        model = Ticket
        fields = ['doctor', 'status']
        widgets = {
            'doctor': forms.Select(attrs={'class': 'form-control','placeholder': 'Doctor Name'}),        
        }

这是我的 Views.py

@login_required
def TicketToGenerateView(request, pk):
    ticket = get_object_or_404(Patient, pk=pk)

    form = TicketModelForm(request.POST or None)
    if form.is_valid():    
        obj.save()
        return redirect('/dashboard/ticket')
    context = {
        'form': form,
        'ticket': ticket,
    }
    return render(request, 'dashboard/ticket.html', context)

这是我的模板

 <form action="." method="POST">
            {% csrf_token %}.
            {% for field in form %}
            <div class="form-group">
                {{ field }}
                {% if field.errors %}
                {% for error in field.errors %}
                <p class="text-danger">{{ error|escape }}</p>
                {% endfor %}
                {% endif %}
            </div>
            {% endfor %}
            <div class="form-group float-right">         
                <button type="submit" class="btn btn-success btn-sm" value=" {{ valueBtn }} "> <span
                        class="glyphicon glyphicon-plus"></span> </button>
            </div>
        </form>

在模板中,我将所有注册员工显示为下拉列表,但我只想显示 emp_type 为“医生”的员工。

此外,我希望在管理站点中看到唯一的 emp_type 是“Doctor”。

谢谢

# You have to use filter for your query

emp_doctor = Employee.objects.filter(emp_type='Doctor')

print(emp_doctor)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM