Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果该ID已经存在于django上的其他表中,如何禁用或隐藏assign/redirect按钮_Python_Html_Django - Fatal编程技术网

Python 如果该ID已经存在于django上的其他表中,如何禁用或隐藏assign/redirect按钮

Python 如果该ID已经存在于django上的其他表中,如何禁用或隐藏assign/redirect按钮,python,html,django,Python,Html,Django,另一个是: class Patient(models.Model): name = models.CharField(max_length=50) active_choices = [('Yes', 'Yes'), ('No', 'No')] active = models.CharField( max_length=6, choices=active_choices, default='Yes') d

另一个是:

class Patient(models.Model):
    name = models.CharField(max_length=50)
    active_choices = [('Yes', 'Yes'),
                      ('No', 'No')]
    active = models.CharField(
        max_length=6, choices=active_choices, default='Yes')

    def __str__(self):
        return self.name
@login_required
def PatientView(request):
    form = PatientModelForm(request.POST or None)
    patients = Patient.objects.order_by('-id')
    ticket_list = Ticket.objects.filter(is_active=0)
    total = patient_list.count()       
    if form.is_valid():
        obj.save()
        messages.success(request, 'Patient was added successfully.')
        return redirect('/dashboard/patient')
    context = {
        'form': form,
        'patients ': patients ,    
    }
    return render(request, 'dashboard/patient.html', context)
在视图中。py

class Ticket(models.Model):
    patient = models.ForeignKey(Patient, on_delete=models.CASCADE)   
    is_active = models.IntegerField(default=1)

    def __str__(self):
        return self.patient.name
票证的另一个视图:

class Patient(models.Model):
    name = models.CharField(max_length=50)
    active_choices = [('Yes', 'Yes'),
                      ('No', 'No')]
    active = models.CharField(
        max_length=6, choices=active_choices, default='Yes')

    def __str__(self):
        return self.name
@login_required
def PatientView(request):
    form = PatientModelForm(request.POST or None)
    patients = Patient.objects.order_by('-id')
    ticket_list = Ticket.objects.filter(is_active=0)
    total = patient_list.count()       
    if form.is_valid():
        obj.save()
        messages.success(request, 'Patient was added successfully.')
        return redirect('/dashboard/patient')
    context = {
        'form': form,
        'patients ': patients ,    
    }
    return render(request, 'dashboard/patient.html', context)
因此,如果Ticket model中已经存在patient.pk并且_active=1,那么我想隐藏下面的链接按钮,以便它显示带有assign link按钮的所有行

@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()
        messages.success(request, 'Patient assigned successfully.')
        return redirect('/dashboard/ticket')

    context = {
        'form': form,
        'ticket': ticket,
    }
    return render(request, 'dashboard/ticket.html', context)

您可以使用自定义的模板标记

在应用程序目录下创建一个
templatetags
包;因此,您的应用程序目录中应该包含以下内容:

<a href="{% url 'dashboard:ticket_to' patient.pk %}" name="doctor" class="btn btn-dark btn-sm" data-toggle="tooltip" title="Assign to a Doctor"> <span class=" fa fa-user-md "></span> </a>
接下来,将以下代码添加到
/templatetags/check_patient

templatetags
templatetags/__init__.py
templatetags/check_patient.py
来自django导入模板的

从。模型进口票
register=template.Library()
@register.simple_标记
def检查患者已存在(请求,主键):
return Ticket.objects.filter(patient_pk=pk,is_active=1).exists()
在模板中:

from django import template
from <your_app>.models import Ticket

register = template.Library()


@register.simple_tag
def check_patient_already_exists(request, pk):
    return Ticket.objects.filter(patient_pk=pk, is_active=1).exists()
{%loadcheck\u patient%}
{%if not check_patient_已经存在_patient.pk%}
{%endif%}

在if表达式末尾放置所有内容:未使用的“patient.pk”后,请查看以获取更多信息。模板渲染期间出错您是否设法解决了此问题?您的
if
语句应该有问题。是的,我做了,但在这里我使用嵌套for循环和if语句:
{%if-not queryset%}{%for patient in patients%}{%if-not check\u patient\u已经存在patient.pk%}{%endif%}{%endfor%}{%endif%}{%endif%}{%endif%}