Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
django.db.utils.OperationalError:外键不匹配-“;进入“返回气缸”;引用;条目“气缸条目”;_Django - Fatal编程技术网

django.db.utils.OperationalError:外键不匹配-“;进入“返回气缸”;引用;条目“气缸条目”;

django.db.utils.OperationalError:外键不匹配-“;进入“返回气缸”;引用;条目“气缸条目”;,django,Django,即使在我清除了所有迁移之后,仍出现以下错误。在我稍后删除Cylinderentry模型的主键之前,一切都正常工作,但它仍然显示“django.db.utils.OperationalError:外键不匹配-“Entry_returncylinder”引用“Entry_Cylinderentry” 当我运行py manage.py makemigrations时,它会显示: You are trying to add a non-nullable field 'id' to cylinderent

即使在我清除了所有迁移之后,仍出现以下错误。在我稍后删除Cylinderentry模型的主键之前,一切都正常工作,但它仍然显示“django.db.utils.OperationalError:外键不匹配-“Entry_returncylinder”引用“Entry_Cylinderentry”

当我运行py manage.py makemigrations时,它会显示:

You are trying to add a non-nullable field 'id' to cylinderentry without a default; we can't do that (the database needs something to populate existing rows).splays following :
django.db.utils.OperationalError: foreign key mismatch - "Entry_returncylinder" referencing "Entry_cylinderentry"
或者,当我运行py manage.py migrate时,它会显示:

You are trying to add a non-nullable field 'id' to cylinderentry without a default; we can't do that (the database needs something to populate existing rows).splays following :
django.db.utils.OperationalError: foreign key mismatch - "Entry_returncylinder" referencing "Entry_cylinderentry"
以下是所有型号:

from django.db import models
from django.utils import timezone
from django.urls import reverse
# Create your models here.
class CylinderEntry(models.Model):
    stachoice=[
    ('Fill','fill'),
    ('Empty','empty') 
    ]
    substachoice=[
    ('Available','availabe'), 
    
    ]
    cylinderId=models.CharField(max_length=50,unique=True)
    gasName=models.CharField(max_length=200)
    cylinderSize=models.CharField(max_length=30)
    Status=models.CharField(max_length=40,choices=stachoice,default='fill')
    Availability=models.CharField(max_length=40,choices=substachoice,default="available")
    EntryDate=models.DateTimeField(default=timezone.now)

    

    def get_absolute_url(self):
        return reverse('cylinderDetail',args=[(self.id)])

    def __str__(self):
        return self.cylinderId


class IssueCylinder(models.Model):
    cylinder=models.OneToOneField('CylinderEntry',on_delete=models.CASCADE)
    userName=models.CharField(max_length=60)
    issueDate=models.DateTimeField(default=timezone.now)
    
    def save(self,*args,**kwargs):
        if not self.pk:
            CylinderEntry.objects.filter(cylinderId=self.cylinder.cylinderId).update(Availability=('issued'))

        super().save(*args,**kwargs)

    def __str__(self):
        
        return self.userName

class ReturnCylinder(models.Model):
    rechoice=[
    ('fill','Fill'),
    ('empty','Empty') 
    ]
    reav=[
        ('Yes','yes'),
        ('No','no')
    ]
    cylinder=models.ForeignKey('CylinderEntry',on_delete=models.CASCADE)
    user=models.ForeignKey('IssueCylinder',on_delete=models.CASCADE)
    status=models.CharField(max_length=20,choices=rechoice)
    returnDate=models.DateTimeField(default=timezone.now)
    Availability=models.CharField(max_length=5,choices=reav)

    

    def save(self,*args,**kwargs):
        if not self.pk:
            IssueCylinder.objects.get(userName=self.user.userName).delete()
            if self.status=='yes' or self.status=='Yes':
                CylinderEntry.objects.get(cylinderId=self.cylinder.cylinderId).update(Availability=('available'))
            else:
                CylinderEntry.objects.get(cylinderId=self.cylinder.cylinderId).delete()

            

        super().save(*args,**kwargs)
    
    def __str__(self):
        return self.cylinder

我不知道我在哪里失踪。救命

查看这篇文章,我认为它可能会有所帮助。感谢您的建议,但它不起作用。正如我在问题中提到的,我曾尝试将主键放在CylinderEntry模型上,后来我将其删除,这就是发生此错误的原因。为了解决这个问题,我只清除了所有旧的迁移(在上一个案例中我没有执行),然后再次运行所有迁移。