django - 如何获取当前用户的slug?

标签 django django-views django-urls

我正在解决一个问题,我需要获取当前用户的 slug 来更新他们的信息。在模型中,我已将用户名存储在 slug 中,但无法访问模板中的 slug。

我尝试使用 request.user 来获取 slug 中的用户名,但它显示页面未找到错误。

模型.py

 class UserProfile(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE, default=None, null=True)
    role = models.CharField(max_length=50, choices=Roles)
    verified =models.BooleanField(default = False,blank=True)
    photo = models.ImageField(upload_to='images', blank=True, default='default/testimonial2.jpg')
    slug = models.SlugField(unique=False, blank=True)

    def save(self, *args, **kwargs):
         self.slug = slugify(self.user.username)
         super(UserProfile, self).save(*args, **kwargs)

    def __str__(self):
         return self.user.username

模板

 <a class="nav-link " href="{% url 'NewApp:userupdate' slug=request.user %}" ><span class="glyphicon glyphicon-user"></span> {{request.user.username}} </a>

网址

  url(r'^userupdate/(?P<slug>[-\w\d]+)/$',views.UserUpdateView.as_view(),name='userupdate'),

最佳答案

使用点表示法访问 slug 字段并创建如下所示的 url。

<a class="nav-link" href="{% url 'NewApp:userupdate' request.user.slug %}" >
   <span class="glyphicon glyphicon-user"></span> {{ request.user }} 
</a>

希望这对你有帮助:)

关于django - 如何获取当前用户的slug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57160391/

相关文章:

python - 如何在 Django 中编写自己的权限

django - 如何在普通 View 功能中更新 tastypie 缓存?

python - Django URL 正则表达式

python - 在 Django 模型表单中覆盖 clean() 方法时返回 cleaned_data

django - 什么是基于模型的搜索?

python - Django 模型 TimeField views.py 无法选择小时或分钟

django - django 中过滤图书列表的每位作者的图书数量

python - 显示不带秒的 TimeField 值 - Django

python - 如何使用当前登录用户作为 Django DetailView 的 PK?

python - 如何将 django 1.4 的正则表达式转换为 django 2.0 样式路径?