Django 模型关联、用户、配置文件和想法模型

Posted

技术标签:

【中文标题】Django 模型关联、用户、配置文件和想法模型【英文标题】:Django model association, users, profiles and idea model 【发布时间】:2011-03-26 15:42:49 【问题描述】:

我有一个使用“django-registration”的应用,一个名为“idea”的定制模型和一个“userprofile”

现在 Idea 类如下所示

类创意(models.Model): 标题 = ... user = models.ForeignKey(User)

User 类是 Django 的 Auth User 系统。

UserProfile 如下所示。

类 UserProfile(ImageModel): user = models.ForeignKey(User) image = models.ImageField(.....)

现在让我们在我的首页说我想显示所有的想法,并让用户和他的“头像”显示。

如何在不通过 Context 渲染的情况下关联所有三个模型。

% for idea % idea.user.get_full_name 刚刚发布了一个名为 idea.title 的想法 % endofr %

现在我也想在其中显示用户的个人资料图片。

我能想到的最好的就是

% for userprofile in idea.user_set.all % img src=" userprofile.image " % endfor %

【问题讨论】:

【参考方案1】:

我认为从长远来看,最简单的方法是注册一个包含标签,这样您就可以在任何模型中重复使用它。

【讨论】:

【参考方案2】:

idea 实例通过 ForeignKey 有一个用户。在用户实例上,您有一个 get_profile 方法,该方法返回此用户的相关配置文件。

所以你可以做这样的事情(未经测试):

% for idea in ideas %
   idea.user.get_full_name  <img src=" idea.user.get_profile.image "/> just posted an idea with the name  idea.title 
% endfor %

【讨论】:

以上是关于Django 模型关联、用户、配置文件和想法模型的主要内容,如果未能解决你的问题,请参考以下文章

Django 开发框架学习

Django Admin 中的内联

从与模板中的 django 用户关联的模型中访问字段

将现有图像文件与 Django 模型相关联

Django模型,models

模型方法中的业务逻辑在 Django Rest Framework 中去哪里了?