【问题标题】:Python import: from .filename import function vs from . import filename [duplicate]Python 导入:from .filename 导入函数与 from .导入文件名 [重复]
【发布时间】:2020-08-30 17:43:59
【问题描述】:

上下文:我正在尝试将位于 models.py 中的 2 个类导入另一个名为 admin.py 的 python 文件。 django 文档说要使用这种语法: from .models import Question, Choice.

这是文件结构:file structure

问题:为什么会这样,当我使用 from . import models 然后在同一个文件中调用 models.Questionmodels.Choice 时,我收到错误消息:“ModuleNotFoundError: No module named 'models'”

在同一目录中的另一个文件中,此语法用于导入文件并在文件中调用函数,没有任何问题:from . import views ... views.index

【问题讨论】:

    标签: python django import


    【解决方案1】:

    我推荐你用这种方式导入模型。

    from .models import *
    

    现在,在你的 python 编码过程中,当你想使用某个特定的模型时,你只需写下那个模型的名称。

    例如,在我的项目中,我有一个 utils.py 文件,我导入了所有模型,并在我的一个函数中调用这些模型之一。

    import json
    import datetime
    from .models import *
    
    def cookieCart(request):
        try:
            cart = json.loads(request.COOKIES['cart'])
        except:
            cart = {}
            
        print('Cart:', cart)
        items = []
        order = {'get_cart_total':0, 'get_cart_items':0, 'shipping':False}
        cartItems = order['get_cart_items']
    
        for i in cart:
            try:
                cartItems += cart[i]['quantity']
                product = Producto.objects.get(id=i)
                total = (product.price * cart[i]['quantity'])
    
                order['get_cart_total'] += total
                order['get_cart_items'] += cart[i]['quantity']
    
                item = {
                    'product':{
                        'id':product.id,
                        'name':product.name,
                        'price':product.price,
                        'imageURL':product.imageURL,
                        },
                    'quantity':cart[i]['quantity'],
                    'get_total':total,
                }
                items.append(item)
    
                if product.despacho == True:
                    order['shipping'] = True
            except:
                pass
        return {'cartItems':cartItems, 'order':order, 'items':items}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多