diff --git a/src/character/models/character.py b/src/character/models/character.py
index 7c66855..3db3de2 100644
--- a/src/character/models/character.py
+++ b/src/character/models/character.py
@@ -1,5 +1,6 @@
from django.db import models
from django.db.models.functions import Lower
+from django.urls import reverse
from django_extensions.db.models import TimeStampedModel
from character.models.dice import Dice
@@ -113,6 +114,9 @@ class Character(models.Model):
def natural_key(self):
return (self.name, self.player_id)
+ def get_absolute_url(self):
+ return reverse("character:view", kwargs={"pk": self.pk})
+
@property
def modifier_strength(self) -> int:
return modifier(self.value_strength)
diff --git a/src/character/templates/character/view.html b/src/character/templates/character/view.html
new file mode 100644
index 0000000..2ac1a50
--- /dev/null
+++ b/src/character/templates/character/view.html
@@ -0,0 +1,8 @@
+{% extends "common/base.html" %}
+
+{% block title %}{{ character.name }}{% endblock %}
+
+{% block content %}
+
{{ character.name }}
+ Edit
+{% endblock %}
diff --git a/src/character/urls.py b/src/character/urls.py
new file mode 100644
index 0000000..6e66e8a
--- /dev/null
+++ b/src/character/urls.py
@@ -0,0 +1,6 @@
+from django.urls import path
+
+from character import views
+
+app_name = "character"
+urlpatterns = [path("/", views.character_view, name="view")]
diff --git a/src/character/views.py b/src/character/views.py
index 60f00ef..4449c6b 100644
--- a/src/character/views.py
+++ b/src/character/views.py
@@ -1 +1,13 @@
-# Create your views here.
+from django.contrib.auth.decorators import login_required
+from django.core.handlers.wsgi import WSGIRequest
+from django.http import HttpResponse
+from django.shortcuts import get_object_or_404, render
+
+from character.models import Character
+
+
+@login_required
+def character_view(request: WSGIRequest, pk: int) -> HttpResponse:
+ character = get_object_or_404(Character, pk=pk)
+ context = {"character": character}
+ return render(request, "character/view.html", context)
diff --git a/src/charasheet/urls.py b/src/charasheet/urls.py
index 153339a..e0821ef 100644
--- a/src/charasheet/urls.py
+++ b/src/charasheet/urls.py
@@ -25,6 +25,7 @@ urlpatterns = [
path("logout/", logout, {"next_page": settings.LOGOUT_REDIRECT_URL}, name="logout"),
path("admin/", admin.site.urls),
path("", hello_world, name="hello_world"),
+ path("character/", include("character.urls", namespace="character")),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
diff --git a/src/common/templates/common/base.html b/src/common/templates/common/base.html
index c213801..383eadd 100644
--- a/src/common/templates/common/base.html
+++ b/src/common/templates/common/base.html
@@ -4,10 +4,12 @@
- Character Sheet
+ {% block title %}Character Sheet{% endblock %}
- {% include "common/hello-random.html" %}
+ {% block content %}
+ {% include "common/hello-random.html" %}
+ {% endblock %}
{% django_htmx_script %}
{% if debug %}