首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ImportError:无法导入名称simplejson

ImportError:无法导入名称simplejson
EN

Stack Overflow用户
提问于 2016-05-12 08:26:09
回答 1查看 1.9K关注 0票数 1

我是Django的初学者,遇到了一个ImportError: cannot import name simplejson错误。Here,有人建议更新extdirect的providers.py以导入json而不是simplejson,但是我不知道在上网很长时间之后如何做到这一点,而我不知道什么是extdirect?最终,我的目标是将ORM查询结果集转换为json,并将其传递给客户端。

以下是代码:

代码语言:javascript
复制
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])

模式:

代码语言:javascript
复制
  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)

而回溯:

代码语言:javascript
复制
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事件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-14 09:45:59

检查是否

代码语言:javascript
复制
SERIALIZATION_MODULES

在你的settings.py里。它可能会覆盖默认的json序列化程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37181284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档