【发布时间】:2021-10-10 04:44:47
【问题描述】:
我在 Django 中有 2 个问题:
-
以下是我的代码,每当我在模板中使用 For 循环时,它检索的不是一个用户数据,而是所有用户/个人资料数据。但是当我只使用 request.user.profile.first_name 时它才起作用,但是我处于需要从多对多字段中检索数据并且必须使用 For 循环的情况,这将我带到了我的第二个问题
-
我需要在多对多字段中使用 For 循环来检索数据,但它正在为所有用户获取数据,请您纠正我哪里做错了吗?或者是否有另一种方法来检索数据而不使用 for 循环(一个用户/个人资料仅在登录后)
models.py
class Department(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
email = models.CharField(max_length=200)
departments = models.ManyToManyField(Department)
views.py
def profilepage(request):
profiles = Profile.objects.all()
departments = Department.objects.all()
context = {
'profiles': profiles,
'departments': departments
}
return render(request, 'profile.html', context)
profile.html
{% for profile in profiles %}
First Name: {{profile.first_name}}
{% for department in departments %}
Department: {{department.name}}
{% endfor %}
{% endfor %}
【问题讨论】:
标签: python python-3.x django django-views django-templates