Mysql Django将字段添加到查询集

Mysql Django将字段添加到查询集,mysql,django,django-models,django-queryset,Mysql,Django,Django Models,Django Queryset,您好,我在django项目中有3个模型,当用户发送请求时,我有他的经销商id我需要返回查询集,其中包含物料表中的物料信息,并为每一行添加上一个模型的折扣率,其中经销商id=当前经销商id和行id。如果您有答案,请帮助我 模型 class Material(models.Model): id = models.AutoField(primary_key=True) color = models.IntegerField() name = models.CharField(

您好,我在django项目中有3个模型,当用户发送请求时,我有他的
经销商id
我需要返回查询集,其中包含物料表中的物料信息,并为每一行添加上一个模型的折扣率,其中经销商id=当前经销商id和行id。如果您有答案,请帮助我

模型

class Material(models.Model):
    id = models.AutoField(primary_key=True)
    color = models.IntegerField() 
    name = models.CharField(max_length=100)
    material_width = models.IntegerField()
    price = models.BigIntegerField(default=0)  

class Dealer(models.Model):
    id = models.AutoField(primary_key=True)
    dealer_name = models.CharField(max_length=100)
    dealer_phone = models.CharField(max_length=13, unique=True)
    dealer_email = models.CharField(max_length=150, null=False, unique=True)
    dealer_firm_name = models.CharField(max_length=100, null=True)
    dealer_address = models.CharField(max_length=100, null=True)
    dealer_unp = models.CharField(max_length=9, null=True)
    dealer_amount = models.FloatField(default=0.0)
    user_id = models.BigIntegerField(unique=True) 

class MaterialDealerPrice(models.Model):
    id = models.AutoField(primary_key=True)
    dealer_id = models.BigIntegerField(null=False)
    material_id = models.BigIntegerField(null=False)
    discount = models.FloatField(null=True, default=0.0)

这看起来像是通过运行inspectdb自动创建的一组模型。您应该始终将该输出视为初稿;有很多事情需要手工来整理

首先,您的MaterialDelerprice型号需要有经销商和物料的外键:

class MaterialDealerPrice(models.Model):
    dealer = models.ForeignKey('Dealer', null=False)
    material = models.ForeignKey('Material', null=False)
    discount = models.FloatField(null=True, default=0.0)
其次,您应该认识到,该模型实际上是多对多关系的直通表

class Material(models.Model):
    ...
    dealers = models.ManyToManyField('Dealer', through='MaterialDealerPrice')

现在,您应该能够在查询中遵循这些关系。不幸的是,你的问题不够清楚,不知道你真正想做什么;您应该给出所需输出的示例。

注释可用于此目的

请添加您的模型描述而不是文本,以及您已经尝试过的内容。class Material(models.Model):id=models.AutoField(primary\u key=True)color=models.IntegerField()name=models.CharField(max\u length=100)Material\u width=models.IntegerField()price=models.bigigerfield(默认值=0)我指的是所有模型,不是评论,编辑你的问题我很抱歉,但这是我关于stackowerflow的第一个问题,我不知道如何编辑问题你没有
ForeignKey
为什么?