相关疑难解决方法(0)

Django:显示/记录来自python shell的ORM sql调用

使用优秀的Django-Devserver我在我的代码中找到各种有趣和意外的SQL调用.我想找到调用的来源,所以我正在寻找一种方法来获取日志或打印出在Python shell中由Django ORM生成的所有SQL调用.也就是说,当我通过Python shell进行Django ORM调用时,我希望看到打印出来或记录的结果SQL.

我注意到几个解决方案将日志信息添加到html页面.是否有一种简单的方法转储到命令行?

django orm

53
推荐指数
7
解决办法
3万
查看次数

Django 1.2等效的QuerySet.query.as_sql()

在Django 1.1中,我能够使用QuerySet这种表示法生成a 使用的SQL :

QuerySet.query.as_sql()
Run Code Online (Sandbox Code Playgroud)

在Django 1.2中,这提升为AttributeError.

有人知道Django 1.2相当于那种方法吗?

谢谢

python django django-queryset

11
推荐指数
1
解决办法
4366
查看次数

django.db.utils.OperationalError:(1052,"字段列表中的列'名称'含糊不清")

在我的Django项目中,当我查询数据时,我得到以下错误:

django.db.utils.OperationalError:(1052,"字段列表中的列'名称'含糊不清")

使用:

http://localhost:8000/api/physicalserver/list/?switchesport__bandwidth=10
Run Code Online (Sandbox Code Playgroud)

但如果我使用:

http://localhost:8000/api/physicalserver/list/?switches__id=xxx
Run Code Online (Sandbox Code Playgroud)

它会工作正常.

我的ListAPIView代码:

class PhysicalServerListAPIView(ListAPIView):
    serializer_class = PhysicalServerListSerializer
    permission_classes = [AllowAny]
    pagination_class = CommonPagination
    def get_queryset(self):
        query_params = self.request.query_params
        filters = {'{}__contains'.format(key): value
               for key, value in query_params.items()
               }
        qs = PhysicalServer.objects.filter(**filters)
        return qs.extra(select={'length':'Length(name)'}).order_by('length', 'name')
Run Code Online (Sandbox Code Playgroud)

我的序列化代码:

class PhysicalServerListSerializer(ModelSerializer):
    bandwidth = serializers.SerializerMethodField()

    class Meta:
        model = PhysicalServer
        fields = "__all__"
        depth = 1

    def get_bandwidth(self, obj):
        return obj.switchesport.bandwidth
Run Code Online (Sandbox Code Playgroud)

我的物理服务器模型:

class PhysicalServer(models.Model):         
    name = models.CharField(max_length=32)

    switches = models.ForeignKey(to=Switches, on_delete=models.DO_NOTHING)
    physical_server_model = models.ForeignKey(to=PhysicalServerModel, null=True, on_delete=models.DO_NOTHING)
    switchesport = models.OneToOneField(to=SwitchesPort, …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

6
推荐指数
1
解决办法
521
查看次数

Django - 记录每个视图的动作

我正在考虑为我的django Web应用程序创建一个日志系统.Web应用程序的使用非常全面(涵盖了业务流程的所有方面),因此我想跟踪发生的每个事件.具体来说,我想记录每个运行的视图而不仅仅是"主要"视图,并且可能记录视图中执行的内容.

当我处于测井系统的"想法"阶段时,我很快就遇到了一些问题,让我不确定如何继续.以下是我的主要问题:

  • 我正在考虑将主要Web应用程序保存其数据的同一MySQL数据库中的所有事件记录下来.我担心的是将MySQL数据库膨胀成一个庞大的数据库.此外,如果数据库崩溃或以某种方式被破坏(是的,我有备份)我也会丢失我的日志,这会消除任何追踪问题的能力.我是使用单独的数据库还是只使用文本文件?
  • 我有多精细?最初我只想记录"Date - In my myView"之类的东西.但是,正如我正在考虑的那样,记录视图中发生的所有内容会很好.这样做可能会使日志变得庞大!而且如果将很多日志输入行混合到代码中,也会使我的代码难看.这种细节:
    • 日期 - 输入视图myView
    • 日期 - 在视图中查看myView,从数据库中检索对象myObject
    • 日期 - 在视图myView中,将myObject字段myField设置为myNewValue
    • 日期 - 离开myView

这是我在这一点上的主要想法.关于这方面的任何建议?

谢谢

django logging django-views

2
推荐指数
1
解决办法
946
查看次数