DJANGO:关于使用ForeignKey链接wto表格



大家好,非常感谢DAILY的支持。现在,我发誓在许多例子和相关主题之间找不到答案:

我有一个车辆型号和一个轮胎车型。两者将通过一个字段PLATE连接;

class Vehicles(models.Model):
Plate= models.CharField(max_length=10) 
Quantity = models.IntegerField(default=0)
Vendor = models.CharField(max_length=50)
def __str__(self):
return self.matricula  
class Tires(models.Model):
Plate = models.ForeignKey(Vehicle, default=0, on_delete=models.SET_DEFAULT) # --- tires would be placed in an exisiting vehicle (plate), or , if not in use, "Tires.Plate=0"
Number = models.IntegerField(unique=True)

我需要这两个允许我做什么,他们真正做什么或不做什么:

  • 向车辆添加记录。。。。。。。。。。。。。。。。。是
  • 在下拉菜单中添加带有预定义车牌号的轮胎,从车辆牌照…………..是,检查
  • 添加车牌号为0的轮胎,表示轮胎未被任何人使用交通工具否,未检查;菜单只提供"Vehicles.Plate"中现有的车牌:即使我尝试添加DEFAULT值
  • 从TIRES中删除寄存器。。。。。。。。。检查
  • 正在从中删除寄存器车辆。。。。。。。未检查;这样做,而不是相应的轮胎。铭牌默认为0,正如我从"...ForeignKey(Vehicle, default=0, on_delete=models.SET_DEFAULT)",I获得"FOREIGN KEY constraint failed">错误

因此,实际上,我移除车辆导致了完整性错误-我已经阅读了外键、1空键的定义和逻辑,很抱歉,但实际上,我读过的任何示例或教程都没有概述这种特定的使用情况。

你能给我一个主意吗,请在那里调查一下?

如果外键不需要值,则应使用null而不是0作为外键的默认值

Plate = models.ForeignKey(Vehicle, null=True, blank=True, on_delete=models.SET_NULL)

最新更新