Django 管理站点:如何使用 reverse()?

Django adminsite: How to use reverse()?

我希望我的标题足以理解我的问题

这是我的admin.py

@admin.register(studentDiscount)
class studentDiscount(admin.ModelAdmin):
    list_display = ('Students_Enrollment_Records', 'Discount_Type','my_url_field')
    ordering = ('pk',)
def my_url_field(self, obj):
    obj_id = obj.Students_Enrollment_Records.Student_Users.id

    url = reverse('record', args=[obj_id])
    return format_html(
        '<a href="{url}" target="_blank">{obj_id}</a>',
        url=url, obj_id=obj_id
    )

这是我的model.py

class studentDiscount(models.Model):
    Students_Enrollment_Records = models.ForeignKey(StudentsEnrollmentRecord, related_name='+',
                                                    on_delete=models.CASCADE, null=True)
    Discount_Type = models.ForeignKey(Discount, related_name='+', on_delete=models.CASCADE, null=True,blank=True)

这就是我想要的结果

如果我点击 下载 link 它将通过学生 ID

转到特定的 html

这是我点击下载后的结果link

这是我当前 admin.py 遇到的错误,请大家帮帮我

这是我的views.py

def record(request):
  return render(request, 'accounts/adminstudentrecord.html')

我的url.py

path('record/', accounts.views.record, name='record'),

更新

当我尝试@ashish 先生的回答时

但是当我点击下载时 link 我得到这个错误

这是我现在的 admin.py

def my_url_field(self, obj):
    obj_id = obj.Students_Enrollment_Records.Student_Users.id

    url = reverse('record', args=[obj_id])
    return format_html(
        "<a href='{url}' target='_blank'>Download</a>",
        url=url, obj_id=obj_id
    )

这是我现在的 url.py

path('record/<args>/', accounts.views.record, name='record'),
path('record/<args>/', accounts.views.record, name='record')

view.py

def record(request, args):
    return render(request, 'accounts/adminstudentrecord.html')