Проблема с сериализаторами, создающими API с помощью Django

#python #django

Вопрос:

Я пишу API с django, и у меня возникает такая проблема: когда я создаю объект сериализатора, если я делаю это так:

 document_serializer = DocumentSalesforceSerializer(data={
        "AccountId": patient_id,
        "ContactId": patient_id,
        "Proveedor__c": "docline",
        "Servicio_asociado__c": "report",
        "Mapfre_Id__c": patient_id,
        "Status": "In Progress",
        "StartDate": document["createdAt"],
        "EndDate": "hoy",
        "Subject": document["category"],
        "Description": description,
        "SAV_fld_source__c": "docline",
        "SAV_fld_doclineExtId__c": id,
        "SAV_fld_doctor__c": "",
    })
    document_serializer.is_valid(raise_exception=True)
 

Я получаю следующую ошибку:

 The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time.
 

Читая в Интернете, некоторые люди говорили, что я должен удалить эту data= часть, поэтому я оставил ее такой:

 document_serializer = DocumentSalesforceSerializer({
        "AccountId": patient_id,
        "ContactId": patient_id,
        "Proveedor__c": "docline",
        "Servicio_asociado__c": "report",
        "Mapfre_Id__c": patient_id,
        "Status": "In Progress",
        "StartDate": document["createdAt"],
        "EndDate": "hoy",
        "Subject": document["category"],
        "Description": description,
        "SAV_fld_source__c": "docline",
        "SAV_fld_doclineExtId__c": id,
        "SAV_fld_doctor__c": "",
    })
    document_serializer.is_valid(raise_exception=True)
 

Но потом я получаю эту ошибку:
Cannot call `.is_valid()` as no `data=` keyword argument was passed when instantiating the serializer instance.

Есть ли у кого-нибудь представление о том, что вызывает ошибку? Заранее спасибо, что прочитали этот вопрос.

Изменить: Это обратная связь ошибки:

 Traceback (most recent call last):
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoutilstranslationtrans_real.py", line 194, in _add_installed_apps_translations
    app_configs = reversed(list(apps.get_app_configs()))
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoappsregistry.py", line 145, in get_app_configs
    self.check_apps_ready()
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoappsregistry.py", line 136, in check_apps_ready
    raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:Userscarlos.dcocoDocumentssavia-docldocline-integrationdebug_kafka.py", line 30, in <module>
    main()
  File "C:Userscarlos.dcocoDocumentssavia-docldocline-integrationdebug_kafka.py", line 26, in main
    event_handler(event)
  File "C:Userscarlos.dcocoDocumentssavia-docldocline-integrationappconnectorkafka_events.py", line 170, in event_handler
    event_logic(event_type, event_id)
  File "C:Userscarlos.dcocoDocumentssavia-docldocline-integrationappconnectorkafka_events.py", line 158, in event_logic
    return document_ops(event, id)
  File "C:Userscarlos.dcocoDocumentssavia-docldocline-integrationappconnectorkafka_events.py", line 134, in document_ops
    document_create_ops(id)
  File "C:Userscarlos.dcocoDocumentssavia-docldocline-integrationappconnectorkafka_events.py", line 110, in document_create_ops
    document_serializer.is_valid(raise_exception=True)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesrest_frameworkserializers.py", line 220, in is_valid
    self._validated_data = self.run_validation(self.initial_data)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesrest_frameworkserializers.py", line 419, in run_validation
    value = self.to_internal_value(data)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesrest_frameworkserializers.py", line 476, in to_internal_value
    validated_value = field.run_validation(primitive_value)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesrest_frameworkfields.py", line 797, in run_validation
    self.fail('blank')
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesrest_frameworkfields.py", line 640, in fail
    message_string = msg.format(**kwargs)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoutilsfunctional.py", line 135, in __wrapper__
    res = func(*self.__args, **self.__kw)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoutilstranslation__init__.py", line 94, in gettext
    return _trans.gettext(message)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoutilstranslationtrans_real.py", line 355, in gettext
    _default = _default or translation(settings.LANGUAGE_CODE)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoutilstranslationtrans_real.py", line 268, in translation
    _translations[language] = DjangoTranslation(language)
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoutilstranslationtrans_real.py", line 155, in __init__
    self._add_installed_apps_translations()
  File "C:Userscarlos.dcocoDocumentssavia-doclenvlibsite-packagesdjangoutilstranslationtrans_real.py", line 196, in _add_installed_apps_translations
    raise AppRegistryNotReady(
django.core.exceptions.AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time.

Process finished with exit code 1

 

Редактировать:
Эта проблема была решена путем добавления следующих строк

 from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
 

к файлу, с которым я работал

Комментарии:

1. Вы импортируете функцию gettext в любое место ваших файлов?

2. нет, где я использую его в этом коде?

3. Можете ли вы поделиться всей обратной связью? Это может подсказать вам, где gettext используется

4. Да, конечно, я добавляю это в исходный комментарий