Django:在另一个应用程序中访问用户配置文件数据

时间:2014-03-21 03:08:24

标签: python database django postgresql

我目前正在研究django应用程序,我正在尝试为它开发一个小推荐系统。我已经扩展了User模型并在名为profile的应用程序中创建了一个用户配置文件,如下所示:

from django.db import models
from django.contrib.auth.models import User
# Create your models here.

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    skills = models.CharField(max_length=150)
    skillsNeeded = models.CharField(max_length=150)
    bio = models.CharField(max_length=300)
    industry = models.CharField(max_length=70)
    occupation = models.CharField(max_length=70)
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])

但是现在我在同一个名为matches的Django项目中创建了一个单独的应用程序,我想知道如何从他们的配置文件中提取当前用户的数据以及获取其中每个其他用户的列表。数据库。我使用postgresql作为我的数据库管理系统,任何想法或帮助将不胜感激。我想我需要找出配置文件数据存储在数据库中的位置并进行手动sql查询。但是,我仍然是django的新手,这是我第一次使用postgre for dbms而不是mysql。

1 个答案:

答案 0 :(得分:2)

几乎不需要手动SQL查询。听起来像你只需要使用基本形式的数据模型来进行查询。例如,当前用户在您的视图中可用作request.user,因此您可以获得如下所示的个人资料:

UserProfile.objects.get(user = request.user)

让所有用户都像以下一样简单:

User.objects.all()

我认为这里有一点点混乱。 Django中的应用程序只是模块的重听名称。通常,所有不同的应用程序"将共享相同的数据库,可以而且应该导入其他应用程序'模型来完成他们的工作。