如何在 Django 模板中 link 给另一个用户
How to link to another user in Django template
我想 link 向其他用户展示他们的 public 活动。
但我不知道如何通过模板link它。
这是我的用户配置文件模型:
class UserProfile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=64)
location = models.CharField(max_length=64, default='Tehran')
picture = models.ImageField(upload_to='profile_images', blank=True, default="/user_image/user_default.png")
slug = models.SlugField()
def save(self, *args, **kwargs):
self.slug = slugify(self.user)
super(UserProfile, self).save(*args, **kwargs)
# Override the __unicode__() method to return out something meaningful!
def __unicode__(self):
return self.user.username
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])
但我不能使用 slug
因为在用户完成他们的配置文件之前它没有为用户配置文件定义。
请帮我找到类似 slug
的东西,以便在模板中使用 link 给其他用户,像这样:
<a href="{% url "index" user.profile.slug %}">{{ user.profile.name }}</a>
根据您的代码,每次保存用户时都会生成 slug 字段。尽管不建议将其用作用户标识符,因为具有相同用户名的 2 个用户将获得相同的 slug。
在找到防止重复的 slug 名称的方法之前,建议暂时使用 ID。
那个:
{% url "index" user.profile.slug %}
一旦你有一个接受 slug 参数的 url 就可以使用:
url(r'^(?P<slug>[\w-]+)/$', views.index, name='index')
在 views.index 视图调用中,您可以执行以下操作:
user = User.objects.get(slug=slug)
获取具有关联 slug 的用户
我想 link 向其他用户展示他们的 public 活动。
但我不知道如何通过模板link它。
这是我的用户配置文件模型:
class UserProfile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=64)
location = models.CharField(max_length=64, default='Tehran')
picture = models.ImageField(upload_to='profile_images', blank=True, default="/user_image/user_default.png")
slug = models.SlugField()
def save(self, *args, **kwargs):
self.slug = slugify(self.user)
super(UserProfile, self).save(*args, **kwargs)
# Override the __unicode__() method to return out something meaningful!
def __unicode__(self):
return self.user.username
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])
但我不能使用 slug
因为在用户完成他们的配置文件之前它没有为用户配置文件定义。
请帮我找到类似 slug
的东西,以便在模板中使用 link 给其他用户,像这样:
<a href="{% url "index" user.profile.slug %}">{{ user.profile.name }}</a>
根据您的代码,每次保存用户时都会生成 slug 字段。尽管不建议将其用作用户标识符,因为具有相同用户名的 2 个用户将获得相同的 slug。
在找到防止重复的 slug 名称的方法之前,建议暂时使用 ID。
那个:
{% url "index" user.profile.slug %}
一旦你有一个接受 slug 参数的 url 就可以使用:
url(r'^(?P<slug>[\w-]+)/$', views.index, name='index')
在 views.index 视图调用中,您可以执行以下操作:
user = User.objects.get(slug=slug)
获取具有关联 slug 的用户