Saya memiliki kode yang membaca beberapa data dari firebase serta tombol yang memiliki tag html dan url href dan kemudian masuk ke template html saya dan ke dalam tabel.

urls.py saya diformat seperti ini:

path('history-report/', view.history_report, name="historyreport")

Dalam pandangan saya, saya memberikan nilai seperti ini:

def history_report(request):
     
# retrieving information code

ziplist=zip(history, date)
            
view_button='<a type="submit" class="btn btn-primary" name="view_history" 
value={0} href="{% url 'historyreport' %}">View</a>'.format(history)
         
return render(request,'history.html',
{"history":ziplist,"view_button":view_button})

Ini membawa saya ke kesalahan 500.

Perhatikan bahwa halaman saya berfungsi dengan baik jika saya menghapus URL:

{% url 'historyreport' %}

Saya mencoba menggunakan ini sebagai gantinya: href='/historyreport'

Tapi ini mengarahkan saya ke localhost/mycurrentpage/historyreport

Padahal seharusnya localhost/historyreport

Adakah saran tentang bagaimana saya bisa membuat ini berfungsi?

1
Master Irfan Elahee 11 Mei 2021, 09:43

1 menjawab

Jawaban Terbaik

Masalahnya di sini adalah tanda kurung kurawal ({ … }) dilihat sebagai penanda untuk menulis data. Kami dapat bekerja dengan tanda kurung kurawal ganda:

from django.template import <b>Template, Context</b>

def history_report(request):
    ziplist = zip(history, date)
        
    view_button=Template(
        f'<a type="submit" href="{{% url \'historyreport\' %}}" class="btn btn-primary" name="view_history" value="{history}">View</a>'
    ).render(Context())
     
 return render(request,'history.html', {"history":ziplist,"view_button":view_button})

Dalam template, Anda kemudian harus merender view_button dengan |safe filter template [Django-doc]:

{{ view_button|safe }}
1
Willem Van Onsem 11 Mei 2021, 07:10