У меня есть данные, и я хочу организовать их как:
Я создаю три таблицы для MonthsM, Wellinfo и TestPRODM:
class MonthsM(models.Model):
MonthsM = models.DateTimeField(unique=True)
class Wellinfo (models.Model):
WellID = models.CharField(max_length=15,unique=True)
class TestPRODM(models.Model):
WellID = models.ForeignKey(Wellinfo ,to_field='WellID', on_delete=models.CASCADE)
TestMonth = models.ForeignKey(TestMonthM, on_delete=models.CASCADE)
TestOIL = models.DecimalField(max_digits=10, decimal_places=3,null=True, blank=True)
#условия В моих реальных данных есть один WellID, который можно тестировать только раз в месяц.
так как установить условие, которое делает это?
поэтому в таблице (TestPRODM) может быть много записей с одним и тем же WellID, но с разными месяцами, поэтому может быть много записей с одним и тем же TestMonth, но с разными WellID.
NB. НЕТ записей в таблице (TestPRODM) с одинаковыми WellID и TestMonth в одно и то же время.
Обновленный пост
for i ,value in enumerate(PUITS): try: _, create = TestPRODM.objects.update_or_create( WellID= PUITS[i], TestMonth_id =obj.id, TestOIL =float(QHUILE[i]), ) print('Saving', PUITS[i]) AddedList +=[value] except: print('Passed', PUITS[i]) pass
и эта функция передает все ограничения в модели и сохраняет все данные в базе данных!