小编Stu*_*ter的帖子

Django 1.11 TypeError上下文必须是dict而不是Context

TypeError context must be a dict rather than Context.在我的一个表单上收到了Sentry错误.我知道它与Django 1.11有关,但我不知道要修改什么来修复它.

违规线

message = get_template('email_forms/direct_donation_form_email.html').render(Context(ctx))

整个视图

def donation_application(request):
    if request.method == 'POST':
        form = DirectDonationForm(data=request.POST)
        if form.is_valid():
            stripe.api_key = settings.STRIPE_SECRET_KEY
            name = request.POST.get('name', '')
            address = request.POST.get('address', '')
            city = request.POST.get('city', '')
            state = request.POST.get('state', '')
            zip = request.POST.get('zip', '')
            phone_number = request.POST.get('phone_number', '')
            support = request.POST.get('support', '')
            agree = request.POST.get('agree', '')
            email_address = request.POST.get('email_address', '')
            number = request.POST.get('number', '')
            cvc = request.POST.get('cvc', '')
            exp = request.POST.get('exp', '')
            # …
Run Code Online (Sandbox Code Playgroud)

python django django-views

43
推荐指数
2
解决办法
4万
查看次数

减少Django数据库查询

我有非常大的数据集和增长,我需要创建许多过滤器,但它会很快失控,并希望有人可以帮助我将一些查询组合成一个单独的调用.以下是我的观点的开始.

调用#1 - for循环以显示所有结果的表

traffic = Traffic.objects.all()

呼叫#2 - 组合总和查询

totals = Traffic.objects.aggregate(Sum('sessions'), Sum('new_users'), Sum('reminder'), Sum('campaigns'), Sum('new_sales'), Sum('sales_renewals'))
    total_sessions = totals.get('sessions__sum')
    total_new_users = totals.get('new_users__sum')
    total_reminder = totals.get('reminder__sum')
    total_campaigns = totals.get('campaigns__sum')
    total_new_sales = totals.get('new_sales__sum')
    total_sales_renewals = totals.get('sales_renewals__sum')
Run Code Online (Sandbox Code Playgroud)

调用#3,#4,#5,#6等等... - 按月和星期几过滤数据库

total_sessions_2014_m = Traffic.objects.filter(created__year='2014', created__week_day=2).aggregate(Sum('sessions'))

total_sessions_2014_m = Traffic.objects.filter(created__year='2014', created__week_day=3).aggregate(Sum('sessions'))

total_sessions_2014_m = Traffic.objects.filter(created__year='2014', created__week_day=4).aggregate(Sum('sessions'))

total_sessions_2014_m = Traffic.objects.filter(created__year='2014', created__week_day=5).aggregate(Sum('sessions'))

total_sessions_2014_m = Traffic.objects.filter(created__year='2014', created__week_day=6).aggregate(Sum('sessions'))
Run Code Online (Sandbox Code Playgroud)

问题是,我需要创建几十个过滤器,因为我有3年的数据,每列有多个数据点,我们需要总和.

问题:

  1. 我可以将呼叫#1组合到呼叫#2中
  2. 我可以使用呼叫#2来查询呼叫#3的总和,这样我就不必调用数据库中的所有对象来过滤它,然后再进行几次这样的操作吗?

如您所见,这将很快失控.任何帮助将非常感激.谢谢.

已更新以添加流量模型

class Timestamp(models.Model):
    created = models.DateField()

    class Meta:
        abstract = True


class Traffic(Timestamp):
    sessions = models.IntegerField(blank=True, …
Run Code Online (Sandbox Code Playgroud)

python django django-templates django-views python-3.x

7
推荐指数
1
解决办法
2956
查看次数

ValueError:在Django中解压缩(预期为2)的值太多

我正在重新组织我的一个项目,以便更加可重复使用,并且通常结构更好,我现在每次运行时都会收到错误makemigrations- 我花了半天的时间试图自己解决这个问题但是已经用完Google了搜索结果,我需要一些帮助.我所做的是删除我设置的自定义用户模型,这样我就可以使用Django的内置用户模型,并且还将我的应用程序URL命名为.我不想要包含一堆代码,但是除了弄脏这篇文章之外什么都不做,因为我希望Traceback有我没有看到的线索.如果您正在查看此内容并了解可能是错误的罪魁祸首,请告知您需要提供哪些帮助?谢谢.

    Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/rooster/.virtualenvs/ddm_dev/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/Users/rooster/.virtualenvs/ddm_dev/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/rooster/.virtualenvs/ddm_dev/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/rooster/.virtualenvs/ddm_dev/lib/python3.5/site-packages/django/core/management/base.py", line 399, in execute
    output = self.handle(*args, **options)
  File "/Users/rooster/.virtualenvs/ddm_dev/lib/python3.5/site-packages/django/core/management/commands/makemigrations.py", line 132, in handle
    migration_name=self.migration_name,
  File "/Users/rooster/.virtualenvs/ddm_dev/lib/python3.5/site-packages/django/db/migrations/autodetector.py", line 45, in changes
    changes = self._detect_changes(convert_apps, graph)
  File "/Users/rooster/.virtualenvs/ddm_dev/lib/python3.5/site-packages/django/db/migrations/autodetector.py", line 128, in _detect_changes
    self.old_apps = self.from_state.concrete_apps
  File "/Users/rooster/.virtualenvs/ddm_dev/lib/python3.5/site-packages/django/db/migrations/state.py", line 166, in concrete_apps …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-views python-3.x

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

dompdf 未从 Laravel 8 和 Livewire 视图下载 PDF

我在 Laravel v8.26.1 应用程序中使用dompdf 。我也在使用 Laravel Livewire v1.3.5。

我可以在 Livewire 之外获取下载 pdf 的视图,但似乎无法让它在 Livewire 视图内工作。我已经尝试了所有我能想到的配置,但仍然遇到障碍。我要么收到Undefined variable: workorder错误,要么根本没有错误,但也没有下载。

路线

...
Route::livewire('/workorder/{workorder}/print', 'admin.workorders.printer')->name('admin.workorder.print')->layout('layouts.admin');
...
Run Code Online (Sandbox Code Playgroud)

livewire/admin/workorders/print.blade

...
<div>
  <button wire:click="generatePDF({{$workorder->id}})">Create PDF</button>
</div>
...
Run Code Online (Sandbox Code Playgroud)

livewire/admin/workorders/printer.php

...
use Barryvdh\DomPDF\Facade as PDF;
...
public function generatePDF($id)
{
    $record = Workorder::find($id);
    $data = [
        'project_id' => $record->project_id,
        'project_name' => $record->project_name,
        'customer_id' => $record->customer_id,
        'generator_id' => $record->generator_id,
        'workorder_po_number' => $record->workorder_po_number,
        'workorder_number' => $record->workorder_number,
        'prevailing_wage' => $record->prevailing_wage,
    ];
    $pdf = PDF::loadView('livewire.admin.workorders.print', $data);
    return $pdf->download('demo.pdf');
}
Run Code Online (Sandbox Code Playgroud)

php dompdf laravel laravel-livewire

7
推荐指数
1
解决办法
8659
查看次数

计算两个值并计算 Django 中百分比的差异

我的在线营销部门上传我们营销计划的分析统计数据,并且我们始终在 Excel 中保存记录。我已经构建了一个应用程序来替换 Excel,突出显示单元格并向其添加功能很容易。我唯一不明白的是如何计算和显示一个查询与另一个查询的差异。如果我没有正确询问,我深表歉意,我已将其作为图像提供以帮助解释。最终我想使用一个自定义过滤器来知道如何计算相似的对象。我为了试图弄清楚它而查看的所有代码仍然有点超出我的理解范围。任何朝着正确方向的帮助或推动都会很棒。谢谢。

我的看法

t_2014 = traffic.filter(created__year='2014')
...

wd1 = t_2014.filter(created__week_day=1).aggregate(Sum('sessions'), Sum('new_users'), Sum('reminder'), Sum('campaigns'), Sum('new_sales'), Sum('sales_renewals'))
wd2 = t_2014.filter(created__week_day=2).aggregate(Sum('sessions'), Sum('new_users'), Sum('reminder'), Sum('campaigns'), Sum('new_sales'), Sum('sales_renewals'))
...

t_new_sales_2014_wd1 = wd1.get('new_sales__sum')
t_new_sales_2014_wd2 = wd2.get('new_sales__sum')
...
Run Code Online (Sandbox Code Playgroud)

我的模板

<td>{{ t_new_sales_2014_wd1 }}</td>
...
<td>{{ t_new_sales_2014_wd2 }}</td>
...
Run Code Online (Sandbox Code Playgroud)

截屏 在此输入图像描述

python django django-models django-views python-3.x

5
推荐指数
1
解决办法
2460
查看次数

保留 Pandas 中的超链接 - Excel 到数据框

我有一个很大的 Excel 文件,其中包含几张数据,我需要将其转换为 HTML。我很高兴尝试 Pandas 来帮助简化转换,避免将 Excel 工作表保存为 HTML,然后花一整天的时间删除所有可怕的 MS 标签。

我能够读取 Excel 文件+工作表,然后将它们加载为数据框。唯一的问题是它从单元格中删除了所有超链接。我已经查看了所有内容,但找不到保留超链接的答案。这是我第一次使用 Pandas,所以可能只是缺乏经验。下面是我的代码和输出的屏幕截图。感谢您的帮助。

In [2]: import pandas as pd

In [3]: xls_file = pd.ExcelFile('Desktop/cfec-temp/blackbook/blackbook.xlsx')

In [4]: xls_file
Out[4]: <pandas.io.excel.ExcelFile at 0x1132ce4e0>

In [5]: xls_file.sheet_names
Out[5]: ['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4', 'Sheet5', 'Sheet6', 'Sheet7']

In [6]: df = xls_file.parse('Sheet1')

In [7]: df
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python python-3.x pandas

5
推荐指数
1
解决办法
6121
查看次数

错误:“increment_by”列不存在 - Postgres 10 和 Rails 5

这似乎是 Postgres 10 的常见错误,但我不确定它只是 Postgres 10 还是因为我也在使用 Rails 5。我在 Digital Ocean 上有一个 Rails 5 应用程序准备上线,当我开始实施备份时,我遇到了一个大问题。当我尝试使用 Navicat 或直接使用 pg_dump 进行备份时,我面临以下错误 -[Err] [Bak] Get sequences: ERROR: column "increment_by" does not exist LINE 1: SELECT last_value, increment_by, max_value, min_value, cache...

我不知道该怎么做,而且网站上已经添加了太多信息,无法将其拆除并重新开始。我希望这里有人找到了解决方法,至少可以让我执行备份,这样我就可以以正确的版本重新创建数据库。

postgresql ruby-on-rails ruby-on-rails-5

5
推荐指数
1
解决办法
4578
查看次数

Laravel Webpack“mix.scripts”工作但脚本未在浏览器中加载

这是我的网页包代码:

...
mix.js('source/_assets/js/main.js', 'js')
    .sass('source/_assets/sass/main.scss', 'css')
    .options({
        processCssUrls: false,
    }).version();

mix.scripts([
    'source/_assets/js/theme/jquery.js',
    'source/_assets/js/theme/plugins.js',
    'source/_assets/js/theme/functions.js'
], 'source/assets/build/js/all.js');
Run Code Online (Sandbox Code Playgroud)

在我的脑海中,我必须<link rel="stylesheet" href="{{ mix('css/main.css', 'assets/build') }}">加载我的样式,并<script src="{{ mix('js/all.js', 'assets/build') }}"></script>在页脚中加载我的脚本。我运行npm run watch并没有收到任何错误,但我的页面是空白的。在我的源代码中,我可以看到两个已编译的文件都正确插入到我的页面中,并且单击后可以查看已编译的代码。

虽然使用 webpack 对我来说是新的,但似乎我已经正确完成了所有操作,但我似乎无法弄清楚为什么脚本没有加载。另一方面,如果我单独对脚本进行硬编码,即<script src="https://www.studiorooster.com/packages/canvas_5/HTML/js/jquery.js"></script>...页面加载正确。谢谢。

laravel webpack laravel-mix

5
推荐指数
0
解决办法
961
查看次数

使用 Laravel 8 和 Breeze 登录时检查用户是否处于“活动”状态

我的用户表中有一个布尔列active。但我不知道如何在登录期间检查该列,并且仅在 active 值为 1 时才允许登录。我希望我有我尝试过的代码示例,但我确实被困住了。我正在使用 Laravel 8 和 Breeze。我假设检查将发生在函数的 AuthenticatedSessionController 文件内store。下面是文件。

AuthenticatedSessionController.php

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest;
use App\Providers\RouteServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class AuthenticatedSessionController extends Controller
{
    /**
     * Display the login view.
     *
     * @return \Illuminate\View\View
     */
    public function create()
    {
        return view('auth.login');
    }

    /**
     * Handle an incoming authentication request.
     *
     * @param  \App\Http\Requests\Auth\LoginRequest  $request
     * @return \Illuminate\Http\RedirectResponse
     */
    public function store(LoginRequest $request)
    {

        $request->authenticate();

        $request->session()->regenerate();

        return redirect()->intended(RouteServiceProvider::HOME);
    }

    /**
     * …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-breeze

4
推荐指数
1
解决办法
4096
查看次数

Vuejs v-show没有按预期工作

我有一个表单来向我的数组添加新项目,但是想要隐藏表单直到用户准备添加项目.表单是隐藏的,我有一个@click附加到图标的功能,以切换要显示的表单,这也是有效的.但是,只要表格切换显示,它就会在几秒钟内自动隐藏.

@click图标

<li class="m-portlet__nav-item">
  <a href="" class="m-portlet__nav-link m-portlet__nav-link--icon" @click="isSection ^= true">
    <i class="flaticon-add"></i>
  </a>
</li>
Run Code Online (Sandbox Code Playgroud)

形成

<div class="row" v-show="isSection">
  <div class="col-md-12">
    <div style="border: 1px solid #fcfcfc; padding: 1em">
      <h5>Add New Section</h5>
      <hr>
      <form v-on:submit.prevent="addNewSection">
        <div class="form-group m-form__group">
          <input v-model="sections.name" placeholder="Name" class="form-control m-input" style="margin-bottom: .5rem"/>
          <textarea v-model="sections.description" placeholder="Description" class="form-control m-input" style="margin-bottom: .5rem"/></textarea>
          <button type="submit" class="btn btn-primary">Add Section</button>
        </div>
      </form>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本

new Vue({
    el: "#main",
    data: {
        isSection: false,
        ...
Run Code Online (Sandbox Code Playgroud)

addNewSection

addNewSection() {
    this.sections.push(
        {
            name: this.sections.name, …
Run Code Online (Sandbox Code Playgroud)

vue.js

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