Django - ImportError: cannot import name simplejson
Django - ImportError: cannot import name simplejson
我是 Django 的初学者,遇到了 ImportError: cannot import name simplejson
错误。 ,有人建议更新 extdirect 的 providers.py 以导入 json 而不是简单的 json,但是经过长时间的网上冲浪,我不知道该怎么做,我可以弄清楚什么是 extdirect?最终,我的目标是将 ORM 查询结果集转换为 json 并将其传递给客户端。
代码如下:
from django.core import serializers
vendors_json = AgreementVendors.objects.select_related('agreement_unique').all()
return serializers.serialize('json', [x.agreement_unique for x in vendors_json])
型号:
class AgreementUnique(models.Model):
agreement_number = models.CharField(max_length=45, blank=True, null=True)
sign_date = models.DateTimeField(default=timezone.now)
cities = models.ForeignKey('address.Cities', on_delete=models.CASCADE)
sale_point = models.ForeignKey('legal_entity.SalePoint', on_delete=models.CASCADE)
sale_point_representative = models.ForeignKey('employee.Employees', on_delete=models.CASCADE)
partner_base = models.ForeignKey('PartnershipBase', on_delete=models.CASCADE)
agreement_from = models.DateField()
agreement_to = models.DateField()
blacknwhite = models.NullBooleanField()
prolongable = models.NullBooleanField()
class Meta:
managed = False
db_table = 'agreement_unique'
def __unicode__(self):
try:
return smart_unicode(AgreementEmployees.objects.get(agreement_unique=self.id).person_unique)
except AgreementEmployees.DoesNotExist:
return smart_unicode(self.agreement_number)
class AgreementVendors(models.Model):
agreement_unique = models.ForeignKey(AgreementUnique, on_delete=models.CASCADE)
vendors = models.ForeignKey('vendor.Vendors', on_delete=models.CASCADE)
return_percentage = models.FloatField()
payment_method = models.ForeignKey('additional.PaymentMethod', on_delete=models.CASCADE)
vendor_representative = models.ForeignKey('person.PersonUnique', on_delete=models.CASCADE)
days_of_payment = models.IntegerField()
class Meta:
managed = False
db_table = 'agreement_vendors'
def __unicode__(self):
return smart_unicode(self.vendors)
和回溯:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 148, in get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 146, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\edgar\Desktop\Project\djprj\vendor\views.py", line 153, in create_new_vendor_agreement
return serializers.serialize('json', [x.agreement_unique for x in vendors_json])
File "C:\Python27\lib\site-packages\django\core\serializers\__init__.py", line 128, in serialize
s = get_serializer(format)()
File "C:\Python27\lib\site-packages\django\core\serializers\__init__.py", line 51, in __call__
raise self.exception
ImportError: cannot import name simplejson
此外,奇怪的是,当我尝试通过 Ctrl+F 在整个项目范围内进行搜索时,我找不到一个 simplejson
检查是否
SERIALIZATION_MODULES
在你的settings.py里面。它可能会覆盖默认的 json 序列化程序。
我是 Django 的初学者,遇到了 ImportError: cannot import name simplejson
错误。
代码如下:
from django.core import serializers
vendors_json = AgreementVendors.objects.select_related('agreement_unique').all()
return serializers.serialize('json', [x.agreement_unique for x in vendors_json])
型号:
class AgreementUnique(models.Model):
agreement_number = models.CharField(max_length=45, blank=True, null=True)
sign_date = models.DateTimeField(default=timezone.now)
cities = models.ForeignKey('address.Cities', on_delete=models.CASCADE)
sale_point = models.ForeignKey('legal_entity.SalePoint', on_delete=models.CASCADE)
sale_point_representative = models.ForeignKey('employee.Employees', on_delete=models.CASCADE)
partner_base = models.ForeignKey('PartnershipBase', on_delete=models.CASCADE)
agreement_from = models.DateField()
agreement_to = models.DateField()
blacknwhite = models.NullBooleanField()
prolongable = models.NullBooleanField()
class Meta:
managed = False
db_table = 'agreement_unique'
def __unicode__(self):
try:
return smart_unicode(AgreementEmployees.objects.get(agreement_unique=self.id).person_unique)
except AgreementEmployees.DoesNotExist:
return smart_unicode(self.agreement_number)
class AgreementVendors(models.Model):
agreement_unique = models.ForeignKey(AgreementUnique, on_delete=models.CASCADE)
vendors = models.ForeignKey('vendor.Vendors', on_delete=models.CASCADE)
return_percentage = models.FloatField()
payment_method = models.ForeignKey('additional.PaymentMethod', on_delete=models.CASCADE)
vendor_representative = models.ForeignKey('person.PersonUnique', on_delete=models.CASCADE)
days_of_payment = models.IntegerField()
class Meta:
managed = False
db_table = 'agreement_vendors'
def __unicode__(self):
return smart_unicode(self.vendors)
和回溯:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 148, in get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 146, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\edgar\Desktop\Project\djprj\vendor\views.py", line 153, in create_new_vendor_agreement
return serializers.serialize('json', [x.agreement_unique for x in vendors_json])
File "C:\Python27\lib\site-packages\django\core\serializers\__init__.py", line 128, in serialize
s = get_serializer(format)()
File "C:\Python27\lib\site-packages\django\core\serializers\__init__.py", line 51, in __call__
raise self.exception
ImportError: cannot import name simplejson
此外,奇怪的是,当我尝试通过 Ctrl+F 在整个项目范围内进行搜索时,我找不到一个 simplejson
检查是否
SERIALIZATION_MODULES
在你的settings.py里面。它可能会覆盖默认的 json 序列化程序。