在用户mod中按用户名查询Django

2024-09-27 00:12:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经 模型.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)

在视图.py在

^{pr2}$

我想得到“提多”和“描述”。通常是请求.路径例如/“root”。但我找不到帮助?在

获取此错误:ReverseSingleRelatedObjectDescriptor'对象没有属性'get'user'UsariModel=用户配置文件.objects.filter(user.username=usarielegido)在

但我不知道怎么弄到。以前试过这个

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

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

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

Tags: pyselfdefaultgetobjectsmodelsusernamefilter
2条回答

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

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

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

^{pr2}$

其次,如果要按用户名查找用户,可以使用以下查询:

UserProfile.objects.get( user__username=UsuarioElegido )

它将根据本机Django类的username属性搜索用户。在

假设username是唯一的:

UsuarioModel = UserProfile.objects.get(user__username=UsuarioElegido)

使用__(双下划线)到follow relations in lookups。在

相关问题 更多 >

    热门问题