小编and*_*ish的帖子

QuerySet不是JSON Serializable Django

新手编程在这里.我有一个有很多行的模型,我想将每一行传递给javascript.

第一次尝试:

Views.py

events = Events.objects.filter(user_id=user_id) // filter by user_id
context = {
            "email": request.user.email,
            "login": True,
            "objects": events,
        }
return render(request, 'fullcalendar/index.html', context)
Run Code Online (Sandbox Code Playgroud)

Events是表的名称,我存储了每一行events.将其传递到一个dict context,然后传递给我的模板.然后从我的模板我能够做到这样的事情:

{% for object in objects %}
    <p>event.column_name</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但我不能在javascript部分那样做.

{% for object in objects %}
    var date = object.date // assuming object has a column named date
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

第二次尝试

所以我做了一些研究并决定使用json.

在Views.py中,我做了以下更改:

return render(request, 'fullcalendar/index.html', {"obj_as_json": simplejson.dumps(context)})
Run Code Online (Sandbox Code Playgroud)

从此我希望这样做:

var objects = {{ obj_as_json }}

for object in …
Run Code Online (Sandbox Code Playgroud)

javascript python django serialization json

9
推荐指数
1
解决办法
8762
查看次数

对本地主机 Python 的 POST 请求

我想测试我使用本地主机创建的 API。

import requests

def test_post_spread_api():
    r = requests.post("https://localhost:8000/api/test")
    print(r.status_code)

test_post_spread_api()
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误:

urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='localhost', port=8000): Max retries exceeded with url: /api/misc/spread_monitor (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f8298604940>: Failed to establish a new connection: [Errno 111] Connection refused',))
Run Code Online (Sandbox Code Playgroud)

API 没有任何问题,因为它在我使用邮递员时有效。我正在使用带有 django 框架的 docker 运行我的本地主机。有任何想法吗?

编辑:完整回溯:

Traceback (most recent call last):
  File "sandbox/test_spread_monitor.py", line 12, in <module>
    test_post_spread_api()
  File "sandbox/test_spread_monitor.py", line 9, in test_post_spread_api
    r = requests.post("https://localhost:8000/api/test")
  File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 112, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/api.py", line …
Run Code Online (Sandbox Code Playgroud)

python python-requests

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

渲染发生在 ComponentWillMount 之前

我试图在 ReactJs 中渲染我的组件之前加载一些初始数据。我也在Flux这个过程中使用该架构。这是我的container

class MemoryApp extends React.Component {
    constructor(props){
        super(props);
        MemoryActions.getInit();
        this.state = {};

    }

    componentWillMount(){
        MemoryStore.on("init", () => {
            this.setState({
                memory: MemoryStore.getInit()
            });
        })
    }

    render(){
        return (
            <div>
                <button type="button">Get Random Memory</button>
                <h1>Memory App</h1>
                <MemoryImage memory={this.state.memory}/>
                <MemoryText memory={this.state.memory}/>
            </div>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

getInit()因此,在这个文件中,我调用了调用 API 来获取一些数据的操作。一旦收到此数据,init事件将由以下各项发出store

class MemoryStore extends EventEmitter {

    getInit(){
        return this.memory_response;
    }

    initLoad(response){
        this.memory_response = response;
        this.emit("init");
    }

    handleActions(action){

        switch (action.type) {
            case MemoryConstants.GET_INIT_RESPONSE:{
                this.initLoad(action.response);
                break;
            } …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs reactjs-flux

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

将Heroku用于Django媒体文件

在heroku域上,我无法加载我的媒体(使用ImageField属性保存的图像)文件图像.但是,如果我设置,我能够看到保存在静态字段中的图像debug = True

我使用以下命令保存我的图像:

image = models.ImageField(upload_to=upload_location, null=True, blank=True, width_field="width_field", height_field = "height_field")
Run Code Online (Sandbox Code Playgroud)

我能够通过这样的方式在我的模板中引用它们:

<img src="{{ instance.image.url }}" class="img-responsive">
Run Code Online (Sandbox Code Playgroud)

从我的views.py传递实例的方式如下:

instance = get_object_or_404(Post,slug=slug)
if instance.draft or instance.publish > timezone.now().date():
    if not request.user.is_staff or not request.user.is_superuser:
        raise Http404
share_string = quote_plus(instance.content)
context = {
    "title": "Detail",
    "instance": instance,
    "share_string":share_string,
}
return render(request,"post_detail.html",context)
Run Code Online (Sandbox Code Playgroud)

谢谢

django heroku

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

Python使用多处理

我试图在python 3.6中使用多处理.我有一个用不同的参数for loop运行method.目前,它一次运行一个,这需要花费相当多的时间,所以我尝试使用多处理.这是我有的:

def test(self):
    for key, value in dict.items():
        pool = Pool(processes=(cpu_count() - 1))
        pool.apply_async(self.thread_process, args=(key,value))
        pool.close()
        pool.join()


def thread_process(self, key, value):
    # self.__init__()
    print("For", key)
Run Code Online (Sandbox Code Playgroud)

我认为我的代码使用3个进程来运行一个method但我希望每个进程运行1个方法,但我不知道如何完成.我正在使用4核btw.

python multiprocessing

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

查询集序列化:AttributeError:'dict' 对象没有属性 '_meta'

我正在尝试将 aqueryset作为JSON对象传递:

structure=Fund.objects.all().values('structure').annotate(total=Count('structure')).order_by('-total') 但是,querysets不是Json Serializable因此,我修改了我的代码:

from django.core import serializers


structure=serializers.serialize('json',Fund.objects.all().values('structure').annotate(total=Count('structure')).order_by('-total'))
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:AttributeError: 'dict' object has no attribute '_meta'这是我的查询集:<QuerySet [{'total': 106, 'structure': 'Corp'}, {'total': 43, 'structure': 'Trust'}, {'total': 2, 'structure': 'OM'}, {'total': 0, 'structure': None}]>

python django json

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

React-Router-Dom 母版页

我正在尝试使用react-router-dom. 我的main页面将有一个nav-bar,我只想更改内容。所以在我的站点路由器页面中,我有这样的事情:

import React from 'react'

import { BrowserRouter, Switch, Route } from 'react-router-dom'

import {FundDetails} from "../pages/fund_detail";
import {Dashboard} from "../pages/dashboard";
import {Main} from "../pages/main";


export class SiteRouter extends React.Component {
  render(){
    return (
        <BrowserRouter>
          <Switch>
            <Route component={Main}/>
            <Route path="/fund_details"          component={FundDetails}      />
            <Route path="/dashboard"          component={Dashboard}      />
          </Switch>
        </BrowserRouter>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在我navbar.js的链接中:

import React from 'react';

import { NavItem, Nav, Navbar } from 'react-bootstrap';

import styled from 'styled-components';

import Particles from …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-router-dom

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

时间选择器出现在模态后面

我正在使用 JQuery 的 Timepicker 插件。这是我的代码:

<div class="form-group">
     <label for="time">Time of Event</label>
     <input  id="time" class="timepicker" >
     </input>
</div>

<script>

$(document).ready(function() {
    $('input.timepicker').timepicker({});
});
</script>
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这样的东西:在此处输入图片说明

如您所见,时间选择器出现在模态表单后面,我无法访问它。我认为这与 z-index 有关,所以我在玩这个。但是,我目前没有成功。

这是我尝试过的: <input id="time" class="timepicker" style="z-index:1151 !important" >

有任何想法吗?

编辑:好了,由于某种原因,当我试图改变z-indextimepicker它不会改变。就像它被什么东西覆盖了一样。但是,如果我在Google Chrome Inspect窗口中手动更改它,它会起作用。

html javascript css jquery datetimepicker

3
推荐指数
1
解决办法
2886
查看次数

Django上下文处理器登录问题

我有一个登录系统:

def login(request):
title = "Login"
if request.user.is_authenticated():
    return HttpResponseRedirect('/')
form = UserLoginForm(request.POST or None)
if request.POST and form.is_valid():
    username = form.cleaned_data.get('username')
    password = form.cleaned_data.get('password')
    user = auth.authenticate(username=username, password=password)
    if user:
        auth.login(request, user)
    return HttpResponseRedirect("/")# Redirect to a success page.
return render(request, 'accounts/login.html', {'title':title, 'form': form })


def logout(request):
    auth.logout(request)
    return HttpResponseRedirect('/accounts/login')
Run Code Online (Sandbox Code Playgroud)

而且效果很好。但是,当我尝试添加时,context_processor它将停止工作并显示以下错误:

Environment:


Request Method: GET
Request URL: http://localhost:8000/accounts/login/

Traceback:

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request) …
Run Code Online (Sandbox Code Playgroud)

python django

3
推荐指数
1
解决办法
504
查看次数

Django脆皮表单提交按钮

我试图用来Crispy Forms使表格看起来不错。我的内容如下forms.py

from django import forms
from .models import Team
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, Field
from crispy_forms.bootstrap import (
    PrependedText, PrependedAppendedText, FormActions)

class CreateTeamForm(forms.ModelForm):
    class Meta:
        model = Team

        fields = [ 'Project_name', 'Project_number'
                  ]

        helper = FormHelper()
        helper.add_input(Submit('submit', 'Submit', css_class='btn-primary'))

        helper.form_method = 'POST'
Run Code Online (Sandbox Code Playgroud)

然后在我的views.py

def create_team(request):
    if request.method == 'POST':
        form = CreateTeamForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return render('/teams/my_team.html',{''})
    else:
        form = CreateTeamForm()

    return render(request, 'teams/team_form.html', {'form':CreateTeamForm()})
Run Code Online (Sandbox Code Playgroud)

最后在我的模板中: …

python forms django django-crispy-forms

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