| 253 | |
| 254 | |
| 255 | class ExperimentMetric(models.Model): |
| 256 | experiment = models.ForeignKey( |
| 257 | Experiment, |
| 258 | on_delete=models.CASCADE, |
| 259 | related_name="experiment_metrics", |
| 260 | ) |
| 261 | metric = models.ForeignKey( |
| 262 | Metric, |
| 263 | on_delete=models.CASCADE, |
| 264 | related_name="experiment_metrics", |
| 265 | ) |
| 266 | expected_direction = models.CharField( |
| 267 | max_length=20, |
| 268 | choices=ExpectedDirection.choices, |
| 269 | ) |
| 270 | created_at = models.DateTimeField(auto_now_add=True) |
| 271 | |
| 272 | class Meta: |
| 273 | constraints = [ |
| 274 | models.UniqueConstraint( |
| 275 | fields=["experiment", "metric"], |
| 276 | name="metric_attached_once_per_experiment", |
| 277 | ), |
| 278 | ] |
no outgoing calls
no test coverage detected
searching dependent graphs…