Django - Ошибка поля "Один к одному" не сохраняет данные без ошибки

В настоящее время я сталкиваюсь с проблемой с полем один-к-одному в Django, где данные не сохранялись после присвоения значения, а вызов сохранения проходит успешно без каких-либо ошибок время от времени. Я бы сказал, что 60% не сохраняется, а 40% работает. Это происходит только на нашем рабочем сервере, где есть миллионы строк для Model1 и Model2 и идет очень много процессов.

# models.py
class Model1(models.Model):
    field1 = models.OneToOneField(Model2, on_delete=models.SET_NULL, null=True, blank=True, default=None) 
    # Some other fields here
   
    def link_item(self, model2_id):
        field1 = Model2.objects.get(id=model2_id)
        self.field1 = field1
        self.save()

# views.py
import module

def my_view(requests):
    model1_obj = Model1.objects.get(id=model1_id)
    result = module.another_function(model1_obj, request_data)
    return result

# module.py
def another_function(model1_obj, request_data):
    if request_data['status'] == 'complete':
        model1_obj.link_item(request_data['model2_id'])

Я попробовал записать в журнал значения self.field1 после вызова self.save и вижу, что объект model2 отображается.

Возможная причина, почему это иногда происходит?

Вернуться на верх