使用来自相关模型django的属性

使用来自相关模型django的属性,django,django-models,Django,Django Models,在我的工作中,每个人都必须计划,直到达到他们的计划目标。为了使这更容易,我正在构建一个计划工具来计划活动。所有活动都有标准的持续时间,保存在PlanningActivity模型中。现在,我想显示一个标准持续时间的所有计划活动列表,并总结一周内的总计划时间如何在我添加的计划中使用strd\u duration?我已经尝试了很多,但似乎没有任何效果 型号.py class PlanningActivity(models.Model): name = models.CharField(max_

在我的工作中,每个人都必须计划,直到达到他们的计划目标。为了使这更容易,我正在构建一个计划工具来计划活动。所有活动都有标准的持续时间,保存在PlanningActivity模型中。现在,我想显示一个标准持续时间的所有计划活动列表,并总结一周内的总计划时间如何在我添加的
计划中使用
strd\u duration
我已经尝试了很多,但似乎没有任何效果

型号.py

class PlanningActivity(models.Model):
    name = models.CharField(max_length=255)
    is_billable = models.BooleanField()
    is_auto_realised = models.BooleanField()
    strd_duration = models.PositiveIntegerField() 

    def __str__(self):
        return self.name

class Planning(models.Model):
    added_by = models.ForeignKey(
        User, related_name='planning_activity', on_delete=models.DO_NOTHING
    )
    activity = models.ForeignKey(
        PlanningActivity, on_delete=models.DO_NOTHING
    )
    date = models.DateField()
    note = models.CharField(max_length=255)

    def __str__(self):
        return str(self.id)
def home(request):
    planning_form = PlanningForm(request.POST)

    if request.user.is_authenticated:
        planning = Planning.objects.filter(added_by=request.user).order_by('-date')
        contracts = UserContract.objects.filter(assigned_user=request.user)

    else:
        planning = ''
        contract = ''

    if planning_form.is_valid():
        new_planning = planning_form.save(commit=False)
        new_planning.added_by = request.user
        new_planning.save()
        return redirect('/')

    else:
        planning_form = PlanningForm()

    return render(request, 'home.html', {'planning_form': planning_form, 'planning':planning, 'contracts':contracts})
视图.py

class PlanningActivity(models.Model):
    name = models.CharField(max_length=255)
    is_billable = models.BooleanField()
    is_auto_realised = models.BooleanField()
    strd_duration = models.PositiveIntegerField() 

    def __str__(self):
        return self.name

class Planning(models.Model):
    added_by = models.ForeignKey(
        User, related_name='planning_activity', on_delete=models.DO_NOTHING
    )
    activity = models.ForeignKey(
        PlanningActivity, on_delete=models.DO_NOTHING
    )
    date = models.DateField()
    note = models.CharField(max_length=255)

    def __str__(self):
        return str(self.id)
def home(request):
    planning_form = PlanningForm(request.POST)

    if request.user.is_authenticated:
        planning = Planning.objects.filter(added_by=request.user).order_by('-date')
        contracts = UserContract.objects.filter(assigned_user=request.user)

    else:
        planning = ''
        contract = ''

    if planning_form.is_valid():
        new_planning = planning_form.save(commit=False)
        new_planning.added_by = request.user
        new_planning.save()
        return redirect('/')

    else:
        planning_form = PlanningForm()

    return render(request, 'home.html', {'planning_form': planning_form, 'planning':planning, 'contracts':contracts})
home.html

<table class="table table-striped mt-2">
    <thead class="thead-light">
        <tr>
            <td>Activity</td>
            <td>Date</td>
            <td>Note</td>
            <td>Duration</td>
        </tr>
    </thead>
    <tbody>
        {% for plan in planning %}
                <tr>
                    <td>{{ plan.activity }}</td>
                    <td>{{ plan.date }}</td>
                    <td>{{ plan.note }}</td>
                    <td>{{ plan.activity_id }}</td> <== HERE I WANT TO SHOW strd_duration
                </tr>
        {% endfor %}
    </tbody>
</table>

活动
日期
笔记
期间
{%用于计划中的计划%}
{{plan.activity}}
{{plan.date}
{{plan.note}}

{{plan.activity_id}}您可以通过外键访问属性:

{% for plan in planning %}
    <tr>
        <td>{{ plan.activity }}</td>
        <td>{{ plan.date }}</td>
        <td>{{ plan.note }}</td>
        <td>{{ plan.activity.strd_duration }}</td>
    </tr>
{% endfor %}

谢谢,我花了太长时间才想出这么简单的解决方案xd