首页 > 解决方案 > Django:仅在其个人资料上显示链接到特定用户的约会

问题描述

我在 Django 中有一个名为“Booking”的模型来预约,其中有两个用户字段:一个专家和一个都具有 ForeignKey 关系的用户。我还有一个 CustomUser 模型,每个用户都有一个个人资料页面。如何指定我只想查看与该特定用户(或专家)在其个人资料页面上链接的约会?

模型.py:

class Booking(models.Model):
    user = models.ForeignKey(CustomUser, null=True, default='', on_delete=models.CASCADE)
    expert = models.ForeignKey(CustomUser, null=True, default='',on_delete=models.CASCADE, related_name='bookings')
    title = models.CharField(max_length=200, default='Video call with ..', null=True)
    start_time = models.DateTimeField('Start time')
    end_time = models.DateTimeField('End time')
    notes = models.TextField('Notes', help_text='Please provide some detail on what you would like to learn or discuss', blank=True, null=True)

视图.py:

class BookingView(CreateView):
    model = Booking
    form_class = BookingForm

def view_profile(request, pk=None):
    if pk:
        user = CustomUser.objects.get(pk=pk)
    else:
        user = request.user
    args = {'user': user}
    return render(request, 'profile.html', args)

配置文件很好地显示了所有用户对象,但我不确定如何仅在配置文件页面上调用用户链接的预订对象。任何帮助,将不胜感激!!

标签: pythondjango

解决方案


user_bookings = Booking.objects.filter(user=request.user) 
expert_bookings = Booking.objects.filter(expert=request.user)

将这些变量传递给渲染。您也可以组合过滤器,但这取决于您!


推荐阅读