0
Ich habe ein django Modell:"Drehen" Spalten und unique_together
class ShortestRoads2(models.Model):
start_node = models.ForeignKey('Nodes', related_name='start_node2', null=True)
end_node = models.ForeignKey('Nodes', related_name='end_node2', null=True)
map = models.ForeignKey('project.MapProject', null=True)
def __str__(self):
return str(self.start_node) + ' to ' + str(self.end_node)
class Meta:
unique_together =(("start_node", "end_node", "map"),)
class Nodes(models.Model):
number = models.IntegerField(null=True, unique=True)
geom_node = models.PointField(spatial_index=True)
Ist es möglich, eine andere unique_together contraint, wobei "start_node" und "end_node" Felder geschaltet werden, zu schaffen?
Erklärt:
obj = ShortestRoads2()
obj.start_node = Nodes.objects.create(number=x1)
obj.end_node = Nodes.objects.create(number=x2)
obj.save() # Object created
obj2 = ShortestRoads2()
obj2.start_node = Nodes.objects.create(number=x1)
obj2.end_node = Nodes.objects.create(number=x2)
obj2.save() # Raising as expected: IntegrityError
obj3 = ShortestRoads2()
obj3.start_node = Nodes.objects.create(number=x2) #Notice varible change
obj3.end_node = Nodes.objects.create(number=x1) #Notice variable change
obj3.save() # Object created
ich eine Ausnahme ausgelöst werden soll, wenn ich spare obj3. Aber wie?