Python Django从M2M获取相关对象
例如,我在django有三个模型:Python Django从M2M获取相关对象,python,django,Python,Django,例如,我在django有三个模型: class Car(models.Models): range = models.DecimalField() speed = models.DecimalField() def __str__(self): return self.speed class Group_of_Cars(models.Models): name = models.CharField() starting_city = m
class Car(models.Models):
range = models.DecimalField()
speed = models.DecimalField()
def __str__(self):
return self.speed
class Group_of_Cars(models.Models):
name = models.CharField()
starting_city = models. CharField()
car = models.ManyToManyField(Car)
def __str__(self):
return self.name
class Arrival_time(models.Models):
Location_of_ArrivalPoint = models.CharField()
Last_known_location_of_CarGroup = models.CharField()
Group_of_Cars = models.ForeignKey(Group_of_Cars)
def function(self):
"Get speed of the "Car" in "Group_of_Cars"
def __str__(self):
return self. Location_of_ArrivalPoint
这是我想做的一个例子,而不是我的实际模型。其想法是让用户输入一系列“汽车”类型的值,如速度和里程。我希望在定义“一组车”的参数时选择“车”。我不确定该怎么做的是如何计算车的速度,对于我需要计算到达时间的车组(车组由一种类型的车组成,我希望“到达时间”是它自己的表)
感谢您的任何意见。models.py
from django.db import models
# Create your models here.
class Car(models.Model):
range = models.DecimalField(decimal_places=2,max_digits=5)
speed = models.DecimalField(decimal_places=2,max_digits=5)
def __str__(self):
return str(self.speed)
class Group_of_Cars(models.Model):
name = models.CharField(max_length=50)
starting_city = models. CharField(max_length=50)
car = models.ManyToManyField(Car)
def __str__(self):
return self.name
class Arrival_time(models.Model):
Location_of_ArrivalPoint = models.CharField(max_length=50)
Last_known_location_of_CarGroup = models.CharField(max_length=50)
Group_of_Cars = models.ForeignKey(Group_of_Cars, on_delete=models.CASCADE)
def function(self):
# "Get speed of the "Car" in "Group_of_Cars"
return self.Group_of_Cars.car.all()
def __str__(self):
return self. Location_of_ArrivalPoint
In views.py
from django.shortcuts import render
from core.models import Arrival_time
from django.http import HttpResponse
# Create your views here.
def home(request):
arp = Arrival_time.objects.get(Location_of_ArrivalPoint='Newyork')
for i in arp.function():
print(i)
return HttpResponse()
谢谢你的回复。我尝试了此操作,但发现了错误:“ManyRelatedManager”对象没有无法引用“speedvalue”的属性“objects”。我复制了您的项目,创建了几个对象,并且能够从函数访问car对象。由于您是通过str从car返回速度,因此通过调用函数()您将获得所有car对象(最终速度)属于arrivalpoint的小组。这很有效!!谢谢!你说得对,“车”应该是一对多。