models.py
# (models.py)
from django.urls import reverse
...
class Product(models.Model):
...
def get_absolute_url(self):
return reverse('product-detail', kwargs={'slug': self.slug})
# product-detail: produtc-detail.html
Tham khảo thêm cách sử dụng get_absolute_url()
admin.py
# (admin.py)
from django.utils.translation import gettext_lazy as _
from django.utils.html import mark_safe
...
class ProductAdmin(admin.ModelAdmin):
list_display = (..., "view_link")
...
# Link view on site
def view_link(self, obj):
return mark_safe(
'<a href="{0}" target="_blank">{1}</a>'.format(
obj.get_absolute_url(),
_("View on site")
)
)
view_link.allow_tags = True
view_link.short_description = _("View on site")
admin.site.register(Product, ProductAdmin)
