【问题标题】:Reverse ForeignKey lookup between two apps in template模板中两个应用程序之间的反向外键查找
【发布时间】:2016-02-13 23:52:39
【问题描述】:

请注意,我是 django 的新手,我之所以问这个问题,是因为我在网上没有找到任何答案。我的母语也不是英语,如果我的问题表述不正确,敬请见谅。

我有两个应用程序,Profile 和 Submission。

Submission里面我有一个叫Track的模型(注意ForeignKey中的相关名称):

class Track(models.Model):

    user = models.ForeignKey(User, unique=False, related_name = 'tracks')
    title = models.CharField(max_length=100)

Profile 内部,我有一个名为 UserProfile 的模型

class UserProfile(models.Model):

    user = models.OneToOneField(User)
    display_name = models.CharField(max_length=50, default="")

我在Profile/views.py 内部有一个UserProfile 的DetailView:

class ProfileDetails(DetailView):
    model = UserProfile
    def get_object(self, queryset=None):
        return get_object_or_404(
            UserProfile, 
            user__username=self.kwargs['username'],
        )

所以在我的 DetailView 模板中,这应该可以正常工作吗? (object代表DetailView显示的UserProfile的实例)

{% for track in object.tracks.all %}
{{ track }}
{% endfor %}

相反,我什么也得不到。没有输出,为什么这不起作用?

【问题讨论】:

    标签: python django django-models foreign-keys


    【解决方案1】:

    没有; object这里是UserProfile的一个实例,和Track没有直接关系。你需要通过用户,确实如此。

    {% for track in object.user.tracks.all %}
    

    【讨论】:

    • 我不敢相信我现在感到多么目瞪口呆。这个小细节让我花了大约 2 个小时试图弄清楚这一点。谢谢!
    猜你喜欢
    • 2021-04-09
    • 2019-02-11
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多