python - Django 在用户模型中按用户名查询集

标签 python django django-queryset

我已经 模型.py

class UserProfile(models.Model):
    user = models.OneToOneField(User) #from contrib.auth,...
    titulo = models.CharField(max_length=50, blank=True, default="")
    descripcion = models.TextField(default="")

    # Valor por defecto, "Pagina de +nombre usuario"
    def save(self, *args, **kwargs):
        if not self.titulo:
            self.titulo = "Pagina de " + self.user.get_username()
        super(UserProfile, self).save(*args, **kwargs)

View .py

 def ShowUserPage(request):
    UsuarioElegido = request.path.split('/')[1]
    UsuarioModel = UserProfile.user.get_user(UsuarioElegido)
    return HttpResponse(UsuarioElegido)

我想要获取 UsuarioElegido 的“标题”和“描述”。 UsuarioElegido 是 request.path,例如/"root"。但我无法得到帮助?

收到此错误:ReverseSingleRelatedObjectDescriptor'对象没有属性'get_user'UsuarioModel = UserProfile.objects.filter(user.username=UsuarioElegido)

但我不知道如何获得它。之前试过这个

         UsuarioModel = UserProfile.objects.filter(user.username=UsuarioElegido)

编辑:我刚刚尝试过这个,但是 Django 在 View 中找不到我的 ShowUserPage :/?

def ShowUserPage(request):
    UsuarioElegido = request.path.split('/')[1]
    UsuarioModel = User.objects.get(username=UsuarioElegido)
    UsuarioModel = UserProfile.objects.filter(user=UsuarioModel)
    return HttpResponse(UsuarioElegido)

最佳答案

首先,您不必自己分析 request.path 并提取 URL 的所有必要部分。您可以使用 urls.py 文件来映射它。例如这样:

urlpatterns = [
    url(r'^user/(?P<username>\w+)$', views.ShowUserPage),
]

处理此请求的 ShowUserPage View 方法具有以下签名:

def ShowUserPage(request, username)

其次,如果您想通过名称查找用户,可以使用以下查询:

UserProfile.objects.get( user__username=UsuarioElegido )

它将通过 native Django 类的 username 属性搜索 User。

关于python - Django 在用户模型中按用户名查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30681061/

相关文章:

django - Django URL-无法在模板中反向URL

python - django queryset orm - 从同一个表中获取特定格式的数据

python - 如何从 Django 的两列中获取最新的时间戳

python - 使用 connexion+Flask+Swagger 时出现 python 微服务错误

python - 根据元素在列表中出现的次数打印输出

python - 在 sqlalchemy 查询中包含非列值

python - 如何通过相关项的条件聚合对 Django 查询集进行排序?

Python:Tkinter 菜单条目未传递正确的值

python - gaesessions 问题 (django+GAE)

python - 如何在 Django 中测试 send_mail?