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')
我希望我的标题足以理解我的问题
这是我的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')