Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django从M2M获取相关对象_Python_Django - Fatal编程技术网

Python Django从M2M获取相关对象

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

例如,我在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 = 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的小组。这很有效!!谢谢!你说得对,“车”应该是一对多。