我想在他们的帐户中从路径模型中呈现属于“驱动程序”的数据。 page - 所以显示他们到目前为止保存在数据库中的leave_from,destination等数据。
Models.py:
class Driver(models.Model):
user = models.OneToOneField(User, default=1)
first_name = models.CharField(max_length=120, blank=True, null=True)
last_name = models.CharField(max_length=120, blank=True, null=True)
tel = models.CharField(max_length=120, blank=True, null=True)
slug = models.SlugField(max_length=120, unique=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
def __str__(self):
return self.user.username
def get_absolute_url(self):
return reverse("account", kwargs={"slug": self.slug})
def save(self, *args, **kwargs):
self.slug = slugify(self.first_name)
super(Driver, self).save(*args, **kwargs)
class Route(models.Model):
leave_from = models.CharField(max_length=120, blank=True, null=True)
destination = models.CharField(max_length=120, blank=True, null=True)
date = models.DateField(auto_now_add=False, auto_now=False)
time = models.TimeField(auto_now_add=False, auto_now=False)
driver = models.ForeignKey(Driver, on_delete=models.CASCADE)
def __str__(self):
return self.leave_from
我玩过各种查询集,下面是最接近的地方(我想......我是编码和Django的新手)。
Views.py:
def route(request, slug):
routedetails = Driver.objects.filter(route=request.user.driver.route_set.all())
context = {
"routedetails": routedetails,
}
return render(request, "route.html", context)
通过这种方式,我可以让用户在该路径的路径中显示相同数量的数据实例。
模板:
{% for route in routedetails %}
<p>{{ route.user }}</p>
{% endfor %}
我尝试了所有不同的版本,但我觉得这让我最接近,因为它至少会让用户返回与此用户的路径数据相同的次数。在这种情况下,在Route中保存了2条路由,因此用户名将返回两次。我已经对其他用户进行了测试,但它始终匹配。
我到处寻找,只要我能够得到任何帮助,我就会感激不尽。
答案 0 :(得分:3)
如果您需要Route
详细信息,最好直接查询Route
模型:
routedetails = Route.objects.filter(driver__user=request.user)
然后,您可以遍历模板中的Route
个对象:
{% for route in routedetails %}
<p>{{ route.leave_from }}</p>
<p>{{ route.destination }}</p>
...
{% endfor %}