我打算在现有的Django项目中重命名几个模型,其中有许多其他模型与我想要重命名的模型有外键关系.我很确定这需要多次迁移,但我不确定具体的程序.
假设我开始在Django应用程序中使用以下模型myapp:
class Foo(models.Model):
name = models.CharField(unique=True, max_length=32)
description = models.TextField(null=True, blank=True)
class AnotherModel(models.Model):
foo = models.ForeignKey(Foo)
is_awesome = models.BooleanField()
class YetAnotherModel(models.Model):
foo = models.ForeignKey(Foo)
is_ridonkulous = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
我想重命名Foo模型,因为名称并没有真正意义,并且导致代码混乱,并且Bar会使名称更加清晰.
从我在Django开发文档中读到的内容,我假设以下迁移策略:
修改models.py:
class Bar(models.Model): # <-- changed model name
name = models.CharField(unique=True, max_length=32)
description = models.TextField(null=True, blank=True)
class AnotherModel(models.Model):
foo = models.ForeignKey(Bar) # <-- changed relation, but not field name
is_awesome = models.BooleanField()
class YetAnotherModel(models.Model):
foo = models.ForeignKey(Bar) # <-- changed relation, …Run Code Online (Sandbox Code Playgroud) 我正在为QuerySet中的每个项生成聚合:
def get_queryset(self):
from django.db.models import Count
queryset = Book.objects.annotate(Count('authors'))
return queryset
Run Code Online (Sandbox Code Playgroud)
但我没有得到JSON响应中的计数.
先感谢您.
我是Kivy的新手,无法指定Button的背景颜色.这是我的简单例子:
# custombutton.py
from kivy.app import App
from kivy.uix.widget import Widget
class MyWidget(Widget):
pass
class CustomButtonApp(App):
def build(self):
return MyWidget()
if __name__ == '__main__':
CustomButtonApp().run()
Run Code Online (Sandbox Code Playgroud)
以及随附的kv文件custombutton.kv:
#:kivy 1.7.2
<MyWidget>:
canvas:
Color:
rgb: (0.93, 0.93, 0.93)
Rectangle:
pos: self.pos
size: self.size
Button:
center: self.parent.center
font_size: 14
height: 28
background_color: (1.0, 0.0, 0.0, 1.0)
text: "I'm a Button"
Run Code Online (Sandbox Code Playgroud)
我确定我错过了一些明显的东西,但是我现在已经乱了一个多小时而且无处可去.按钮似乎有一丝深红色:

这不是在Kivy中为Button指定背景颜色的方法吗?
谢谢!
重新编号是什么?就像我正在搜索字符串中的任何数字,正面或负面.我一直在使用\ d +但是找不到0或-1
我试图将scipy层次聚类的结果转换为json,以便在d3.js中显示这里的一个例子
以下代码生成具有6个分支的树形图.
import pandas as pd
import scipy.spatial
import scipy.cluster
d = {'employee' : ['A', 'B', 'C', 'D', 'E', 'F'],
'skillX': [2,8,3,6,8,10],
'skillY': [8,15,6,9,7,10]}
d1 = pd.DataFrame(d)
distMat = xPairWiseDist = scipy.spatial.distance.pdist(np.array(d1[['skillX', 'skillY']]), 'euclidean')
clusters = scipy.cluster.hierarchy.linkage(distMat, method='single')
dendo = scipy.cluster.hierarchy.dendrogram(clusters, labels = list(d1.employee), orientation = 'right')
dendo
Run Code Online (Sandbox Code Playgroud)
我的问题 如何以d3.js理解的格式表示json文件中的数据
{'name': 'Root1’,
'children':[{'name' : 'B'},
{'name': 'E-D-F-C-A',
'children' : [{'name': 'C-A',
'children' : {'name': 'A'},
{'name' : 'C'}]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我最近开始使用Python编程.我必须编写许多函数,并且想知道如何合并一个帮助或描述文本,以便在调用函数时它出现在spyder的对象检查器中.在MatLab中,这通过将注释文本放在函数文件的开头来工作.Python中是否有类似的方法(使用Spyder)?
有人可以帮助我如何在django rest api中使用POST方法上传文件,例如当我启动时
curl -X POST 127.0.0.1:8000/api/v1/assets/ -d '{"name" = "my image ","source"="/root/images/my_image2.jpg"}' -H "Content-Type: application/json"
Run Code Online (Sandbox Code Playgroud)
我想上传my_image2.jpg
serializers.py:
from django.forms import widgets
from rest_framework import serializers
from .models import Asset
class AssetSerializer(serializers.ModelSerializer):
class Meta:
model = Asset
Run Code Online (Sandbox Code Playgroud)
views.py:
from .serializers import AssetSerializer
from django.http import Http404
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework import status
from rest_framework.decorators import api_view
class AssetAdd(APIView):
def post(self, request, format=None):
serializer = AssetSerializer(data=request.DATA)
print serializer.data
if serializer.is_valid():
serializer.save() …Run Code Online (Sandbox Code Playgroud) 我在PyCharm看到了一些奇怪的行为.我有一个Django项目,断点在某些文件中停止工作,但在其他文件中停止工作.例如,我的应用程序的views.py中的所有断点都可以正常工作,但是同一个应用程序的models.py中的所有断点都会被忽略.
我尝试过以下但没有快乐:
一些细节:
我没有在配置中使用任何特殊设置.有任何想法吗?
我创建了一个简单的应用程序,使用Tkinter的Canvas小部件显示数据的散点图(参见下面的简单示例).绘制10,000个数据点后,应用程序变得非常迟缓,可以通过尝试更改窗口大小来看到.
我意识到添加到Canvas的每个项目都是一个对象,因此在某些时候可能会出现一些性能问题,但是,我预计该级别会远高于10,000个简单的椭圆形对象.此外,我可以在绘制点或与它们交互时接受一些延迟,但在绘制它们之后,为什么只是调整窗口的大小这么慢?
在阅读了使用Canvas小部件的effbot性能问题之后,似乎在调整大小期间可能会有一些不需要的连续空闲任务需要忽略:
Canvas小部件实现了直接的损坏/修复显示模型.对画布的更改以及Expose等外部事件都被视为对屏幕的"损坏".小部件维护一个脏矩形以跟踪受损区域.
当第一个损坏事件到来时,画布会注册一个空闲任务(使用after_idle),当程序返回到Tkinter主循环时,该任务用于"修复"画布.您可以通过调用update_idletasks方法强制更新.
因此,问题是,update_idletasks一旦数据被绘制,是否有任何方法可以使应用程序更具响应性?如果是这样,怎么样?
以下是最简单的工作示例.在加载后尝试调整窗口大小以查看应用程序变得多么迟钝.
我最初在Mac OS X(Mavericks)中观察到了这个问题,当我调整窗口大小时,我的CPU使用量大幅增加.由Ramchandra的评论提示我在Ubuntu中测试了这个,但这似乎没有发生.也许这是一个Mac Python/Tk问题?不会是我遇到的第一个,请看我的另一个问题:
有人也可以在Windows中尝试(我无法访问Windows框)?
我可以尝试使用我自己编译的Python版本在Mac上运行,看看问题是否仍然存在.
最小的工作示例:
import Tkinter
import random
LABEL_FONT = ('Arial', 16)
class Application(Tkinter.Frame):
def __init__(self, master, width, height):
Tkinter.Frame.__init__(self, master)
self.master.minsize(width=width, height=height)
self.master.config()
self.pack(
anchor=Tkinter.NW,
fill=Tkinter.NONE,
expand=Tkinter.FALSE
)
self.main_frame = Tkinter.Frame(self.master)
self.main_frame.pack(
anchor=Tkinter.NW,
fill=Tkinter.NONE,
expand=Tkinter.FALSE
)
self.plot = Tkinter.Canvas(
self.main_frame,
relief=Tkinter.RAISED,
width=512,
height=512,
borderwidth=1
)
self.plot.pack(
anchor=Tkinter.NW,
fill=Tkinter.NONE,
expand=Tkinter.FALSE
)
self.radius = 2
self._draw_plot()
def _draw_plot(self):
# Axes lines
self.plot.create_line(75, 425, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用下面的代码创建一个按钮并更改高度和宽度,但实际按钮不会在物理上显示.但是,如果您将鼠标悬停在它应该是的区域上并单击它将打开新窗口.有任何想法吗?
import sys
from tkinter import *
#main menu
def mmWindow():
mmWindow=Tk()
mmWindow.geometry('600x600')
#first window
mWindow= Tk()
mWindow.geometry('1920x1080+0+0')
mWindow.title('DMX512 Controller')
wtitle = Label (mWindow, text = "Pi DMX", fg = 'blue')
wtitle.place(x = 640, y = 100)
#main menu button
mmbutton = Button (mWindow, text = "Main Menu",command = mmWindow)
mmbutton.place( x=200, y = 200)
mmbutton.config(width=200, height=200)
Run Code Online (Sandbox Code Playgroud)