Django 4.1: Как установить значение по умолчанию поля slug модели Profile на имя пользователя?
Я создал модель профиля для [Django's default user model](https://docs.djangoproject.com/en/4.1/ref/contrib/auth/#user-model) и хочу создать slug для него, чтобы его можно было вызвать, используя имя пользователя, а не его id или pk, я пробовал это до сих пор, но ничего не добился, **Я не прошу вас завершить то, как я пытаюсь достичь этого, но если есть лучший способ сделать это, пожалуйста, скажите мне**.
models.py: ``py from django.db import models from django.contrib.auth.models import User from django.urls import reverse from django.template.defaultfilters import slugify
class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) bio = models.TextField(blank=True, null=True) profile_picture = models.ImageField(upload_to=user, blank=True) slug = models.SlugField()
def get_absolute_url(self):
return reverse('details', kwargs={'slug': self.slug})
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(User.objects.get(user__id = 1).username)
return super().save(*args, **kwargs)
urls.py:
```py
from django.urls import path
from django.contrib.auth.views import LogoutView
from .views import UserCreateView, UserLoginView, UserProfileCreateView
urlpatterns = [
path('register/', UserCreateView.as_view(), name='signup'),
path('login/', UserLoginView.as_view(), name='login'),
path('logout/', LogoutView.as_view(), name='logout'),
path('u/<slug:slug>/edit_profile/', UserProfileCreateView.as_view(), name='edit_profile')
]