【发布时间】:2015-11-08 20:02:42
【问题描述】:
我需要一些帮助来了解 Django 1.8 的 ORM。我对如何正确实现数据库中的关系感到困惑。
我想要一个User 对象有一个UserProfile。我还需要一个User 才能制作几个Posts。
然后我希望UserProfile 可以访问用户 发布的所有帖子,以便我可以在userprofile 视图中显示它们。我应该通过给Post 一个FK 给UserProfile 还是相反或根本不这样做?
如果这是正确的方法,我什至如何查询用户的所有帖子? 到目前为止,这是我的模型的代码:
class UserProfile(models.Model):
user = models.OneToOneField(User)
website = models.URLField(blank=True)
biography = models.TextField(max_length=500, blank=True)
likes = models.IntegerField(default=0, blank=True)
dislikes = models.IntegerField(default=0, blank=True)
slug = models.SlugField(max_length=50)
def __unicode__(self):
return unicode(self.user.username)
class Post(models.Model):
user = models.ForeignKey(User,null=True)
user_profile = models.ForeignKey(UserProfile, null=True)
title = models.CharField(max_length=50, blank=False)
body = models.TextField(max_length=500, blank=False)
description = models.CharField(max_length=100, blank=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
def __unicode__(self):
return unicode(self.title)
我想我可能想多了这一切。我怀疑UserProfile 和Post 根本不需要关系,视图可以用这两个这样的QuerySet 呈现单独的数据吗?
posts=Post.objects.filter(user=request.user) 和
user_profile = UserProfile.objects.filter(user=request.user)
【问题讨论】:
标签: django django-orm