微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django外键不匹配;一个桌子中有两个FK,第一个FK有效,第二个不起作用

如何解决Django外键不匹配;一个桌子中有两个FK,第一个FK有效,第二个不起作用

我有一个“模型表格”,该表格从“汽车制造”和“汽车模型”的2个模型中下拉输入。 Car Make FK可以正常工作,但是当我添加FK for Car Model时,它不起作用,因为它们本质上是相同的代码,我对此感到很困惑。

下面,我将展示“汽车制造商”和“汽车模型”模型,以及“车库库存”模型及其相关的“模型形式”。

非常感谢任何帮助。

Models.py

class MotorMakes(models.Model):
    MotorMakeName = models.CharField(max_length=50,unique=True,default=False)
    
    def __str__(self):
        return self.MotorMakeName or ''
    
    def __unicode__(self):
        return u'%s' % (self.MotorMakeName) or ''

class MotorModelsV2(models.Model):
    MotorMakeName =  models.CharField(max_length=50,default=False,)
    MotorModelName = models.CharField(max_length=100,default=False)
    Mkid = models.ForeignKey(MotorMakes,on_delete=models.CASCADE,null=True)
    Mlid = models.IntegerField(default=False,unique=True)
    MotorImage = models.ImageField(upload_to='Car_Pics',default='Car_Pics/default.png',blank=True)

class GarageInventory(models.Model):
    MotorDetailRef = models.ForeignKey(MotorDetail,null=True)
    GarageID = models.CharField(max_length=5,default='',)
    ListMake= models.ForeignKey(MotorMakes,to_field='MotorMakeName',null=True)
    ListModel= models.ForeignKey(MotorModelsV2,to_field='MotorModelName',null=True)
    ListSeries = models.CharField(max_length=50,null=True)
    Title = models.CharField(max_length=100,null=True)
    BodyType = models.CharField(max_length=25,null=True)
    GaragePrice = models.DecimalField(max_digits=10,decimal_places=2,default='0')
    FuelType = models.CharField(max_length=15,default='')
    Colour = models.CharField(max_length=15,default='')
    CarEngine = models.CharField(max_length=10,null=True)
    DoorType = models.CharField(max_length=10,null=True)
    Year = models.CharField(max_length=10,null=True)
    created_date = models.DateTimeField(default = timezone.Now)

Forms.py

##############Garage Car Input Forms###############
class GarageCarForm(ModelForm):
    
    GarageID = models.CharField(max_length=5,)
    #ListMake= forms.ChoiceField(queryset=MotorMakes.objects.all())
    ListMake= models.CharField(max_length=50,)
    ListModel= models.CharField(max_length=100,default='')
    MotorDetailRef = models.ForeignKey(MotorDetail,null=True)
    #Title = models.CharField(max_length=100,default='0')
    FuelType = forms.ChoiceField(choices = FUEL_CHOICES)
    Colour = forms.ChoiceField(choices = COLOR_CHOICES)
    DoorType = models.CharField(max_length=10,null=True)
    CarEngine = models.CharField(max_length=10,null=True)


    class Meta:
        model = GarageInventory
        fields = ('GarageID','ListMake','ListModel','Title','BodyType','GaragePrice','FuelType','Colour','DoorType','CarEngine','Year',)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。