私はDjango REST Frameworkといくつかの多対多の関係を持つSQLデータベースを使用しています。アプリ。関連するテーブルは以下のとおりです。djangoと多対多の関係でデータベースから特定の情報にアクセスするのに問題がある
ユーザー:ID、パスワード、last_login、IS_SUPERUSER、ユーザ名、FIRST_NAME、LAST_NAME、電子メール、is_staff、is_active、date_joined
プロフィール:ID:ID、USER_IDは、
組織をuser_organization_id 、ORGANIZATION_NAME
profile_projects:ID、PROJECT_NAME
:ID、PROFILE_IDは、プロジェクトをPROJECT_ID
私の問題は、プロジェクトを自分のプロフィールページに正しく表示させることです。プロファイルとプロジェクトは多くのものから多くのものに分かれているため、それぞれ独自のテーブルがあります。
これはmodels.py
class Project(models.Model):
id = models.AutoField(primary_key=True)
project_name = models.CharField(max_length = 30)
def __str__(self):
return "%s" % self.project_name
class Profile(models.Model):
id = models.AutoField(primary_key=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
user_organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
projects = models.ManyToManyField(Project)
def __str__(self):
return "%s's profile" % self.user
から該当するコードである。そして、私のprofile.html
テンプレートは次のとおりです。プロジェクト「の楽しみに組織当社のために働く私のサンプルユーザーJohn Doeの、と
{% load staticfiles %}
{% load rest_framework %}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://bootswatch.com/yeti/bootstrap.min.css"/>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<title>{{profile.user.first_name}}'s Profile</title>
</head>
<body>
<h1>{{profile.user.get_full_name}}</h1>
<h2>{{profile.user_organization.organization_name}}</h2>
<h3>Projects</h3>
{{profile.projects.all}}
<h3>Email</h3>
{{profile.user.email}}
</body>
</html>
'、 彼のプロフィールページのすべてが正しく表示されます(プロジェクトの下は[<Project: fun>]
です)。私は物事の全体のホストを試してみた、これらは私が取得していた結果です:Webページ上の私のテンプレートの利回り「app.Project.None」で
{{ profile.projects }}
(アプリは私のDjangoアプリケーションの名前である)
{{ profile.projects.name }}
「なし」
{{ profile.projects.all.name }}
何も表示されません。だから私は近いと知っていますが、[<Project: ___ >]
をプロジェクト名の周りに表示しないようにするにはどうすればいいですか?私は、profile_projectsが他のすべての情報が1対1または1対多であるため、多くのものから多くのものになっているという事実に由来する問題だと思います。
私のサンプルユーザーは現在それぞれ1つのプロジェクトしか持っていませんが、1つのプロジェクトだけで作業すると、プロファイルごとに複数のプロジェクトを追加して表示することに心配します。
{{profile。projects_set.all}}? –
@LjubisaLivac何も表示されません... – Catherine
逆の場合、 'profile.projects.all'または' projects.profile_set.all'にする必要があります。 – rrauenza