Python 如何添加必须查找外键ID的条目
我在数据库中定义了多个位置。例如,假设我把米迈作为一个城市。我试图了解如何添加测量条目并在Location中引用城市迈阿密的Location ID。每个位置都有许多测量值 问题1我会怎么做Python 如何添加必须查找外键ID的条目,python,django,django-models,Python,Django,Django Models,我在数据库中定义了多个位置。例如,假设我把米迈作为一个城市。我试图了解如何添加测量条目并在Location中引用城市迈阿密的Location ID。每个位置都有许多测量值 问题1我会怎么做 m = Measurement.objects.update_or_create( server = "Bubba", cpu_util = "100%", location = Location.objects.get(city="Miami") ) 或者这是
m = Measurement.objects.update_or_create(
server = "Bubba",
cpu_util = "100%",
location = Location.objects.get(city="Miami")
)
或者这是可能的吗
l = Location.objects.get(city="Miami")
m = Measurement.objects.update_or_create(
server = "Bubba",
cpu_util = "100%",
location = l.id
)
问题2:每个位置每天只能进行一次测量。如果在同一日期添加了两次度量值,那么我将使用update\u,或者如果值不同,那么创建将更新cpu\u util 问题1:两项工作都注意到了变化
m = Measurement.objects.update_or_create(
server = "Bubba",
cpu_util = "100%",
location = Location.objects.get(city="Miami")
)
Or (if this is possible?)
l = Location.objects.get(city="Miami")
m = Measurement.objects.update_or_create(
server = "Bubba",
cpu_util = "100%",
location = l
)
问题2:将唯一的_添加到您的模型中
class Measurement(models.Model):
server = models.CharField(('server'), max_length=10)
cpu_util = models.CharField(('cpu'), max_length=10)
date = models.DateField(default=timezone.now)
location = models.ForeignKey(Location, on_delete=models.CASCADE)
class Meta:
unique_together = ('location','date')
存储外键时,必须传递整个对象,以便传递测量中的位置对象table@AbiWaqas,对不起,我没听懂。谢谢。我认为这一独特的组合给了我很多问题。我遇到django.db.utils.IntegrityError:重复的键值违反了唯一约束度量值\u度量值\u位置\u id\u键值详细信息:键值位置\u id=47已存在。听起来您正在尝试为同一位置:日对添加第二个度量值
class Measurement(models.Model):
server = models.CharField(('server'), max_length=10)
cpu_util = models.CharField(('cpu'), max_length=10)
date = models.DateField(default=timezone.now)
location = models.ForeignKey(Location, on_delete=models.CASCADE)
class Meta:
unique_together = ('location','date')