Django ModelForm构造函数中的self.instance意味着什么,我在哪里可以找到它的文档?
class MyModelForm(ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
if self.instance:
...
Run Code Online (Sandbox Code Playgroud) Django文档解释了如何在ModelForm模型映射中使用标签自定义:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/ .但是,当我尝试按照它时,我得到错误:
name '_' is not defined.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
另外,为什么_括号前应该有符号?
这是我的代码:
class RuleForm(ModelForm):
def __init__(self, *args, **kwargs):
super(ModelForm, self).__init__(*args, **kwargs)
self.css_class = "rule"
class Meta:
model = Rule
fields = ("user", "title")
exclude = ("user")
widgets = {
"title" : TextInput(attrs={"class" : "title"}),
}
labels = {
"title": _("Rule Title"),
}
Run Code Online (Sandbox Code Playgroud) 我在这里挠头.我正在使用angularJS并尝试使用包含对parseInt的调用的表达式.
{{0 == 2}}
Run Code Online (Sandbox Code Playgroud)
... 按预期打印错误.)
但是,当我尝试时:
{{parseInt(0) == parseInt(2)}}
Run Code Online (Sandbox Code Playgroud)
......打印出来...... 真实!
这怎么可能?
假设我需要一个包含字典列表的数据库文件:
文件:
[
{"name":"Joe","data":[1,2,3,4,5]},
{ ... },
...
]
Run Code Online (Sandbox Code Playgroud)
我需要一个函数来接收如上所示的字典列表并将其附加到文件中.有没有办法实现这一点,比如使用json(或任何其他方法),而不加载文件?
EDIT1:注意:我需要的是将新词典附加到光盘上已有的文件中.
我对Celery很新,这是我的问题:
假设我有一个脚本经常被认为是从DB获取新数据并使用Celery将其发送给工作人员.
tasks.py
# Celery Task
from celery import Celery
app = Celery('tasks', broker='amqp://guest@localhost//')
@app.task
def process_data(x):
# Do something with x
pass
Run Code Online (Sandbox Code Playgroud)
fetch_db.py
# Fetch new data from DB and dispatch to workers.
from tasks import process_data
while True:
# Run DB query here to fetch new data from DB fetched_data
process_data.delay(fetched_data)
sleep(30);
Run Code Online (Sandbox Code Playgroud)
这是我的担忧:数据每30秒获取一次.process_data()函数可能需要更长的时间,并且取决于工作者的数量(特别是如果太少),队列可能会受到我所理解的限制.
问题是如何设置队列大小以及如何知道它已满?一般来说,如何应对这种情况?
我有以下问题(BTW我想我前一天没遇到过这个问题):
>>> rule = Rule.objects.get(user=user)
>>> rule.id
1
>>> rule = Rule.objects.get(user=user).latest('id')
AttributeError: 'Rule' object has no attribute 'latest'
Run Code Online (Sandbox Code Playgroud)
为什么我收到错误?
当我以"通用"方式定义列表时:
>>>a=[[]]*3
>>>a
[[],[],[]]
Run Code Online (Sandbox Code Playgroud)
然后尝试仅附加到外部列表的第二个元素:
>>>a[1].append([0,1])
>>>a
[[[0,1]], [[0,1]], [[0,1]]]
Run Code Online (Sandbox Code Playgroud)
它可以附加到外部列表的所有元素,如上所示,可能是因为元素是对同一列表的引用而不是不同的列表(为什么它以这种方式工作?).我怎样才能以相同的"通用"方式实际创建列表,这样内部列表将是不同的列表而不仅仅是引用.谢谢.
在我的Django项目中,应用程序my_app有一个引用javascript静态文件的模板:
<script src="{% static 'my_app/my_script.js' %}"></script>
Run Code Online (Sandbox Code Playgroud)
一旦我在my_app/templates/my_app中安装my_script.js,一切似乎都有效.在某些时候,我用不同的脚本覆盖my_script.js,这样my_script.js现在有不同的内容.
但是,当我使用浏览器加载my_app时,它会加载旧的my_script.js,尽管它不再存在.我该如何解决?谢谢.
假设有一个抽象模型CarOwner:而Person或Business可以是CarOwner.此外,具有特定VIN的汽车可以属于(涉及)个人或企业,但不属于两者(互斥的情况).在下面的代码的最后,我提出了两种可能性(参见代码中的注释"#1.我应该拥有这个???"和"#2.......或者我应该拥有这个???").在第一种可能性中,与抽象模型建立了多对一关系,我不确定这是否是正确的方法.在第二种情况下,建立了两种关系,我不确定这是否正确,特别是不清楚如何使它们相互排斥.那么哪一个是正确的,如果不是,请尽可能提供正确答案.谢谢.
class CarOwner(models.Model):
location = models.CharField(max_length=50, blank=True)
class Meta:
abstract = True
class Person(CarOwner):
name = models.CharField(max_length=50, blank=True)
class Business(CarOwner):
business_id = models.CharField(max_length=50, blank=True)
class Car(models.Model):
vin = models.CharField(max_length=50, blank=True)
# 1. SHOULD I HAVE THIS??? (CarOwner is abstract)
carowner = models.ForeignKey(CarOwner, blank=True, null=True)
# 2. ...OR SHOULD I HAVE THIS???
person = models.ForeignKey(Person, blank=True, null=True)
business = models.ForeignKey(Business, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud) django django-models foreign-key-relationship django-orm many-to-one
我正在使用flask-SQLAlchemy作为我的webservice.我想有一个端点,检查使用的MySQL数据库可用性/响应性的状态.我该怎么办呢?谢谢.
以下是我的代码的相关部分:
mywebsvc.py
...
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://mylogin:mypw@localhost/mydb'
db.init_app(app)
...
Run Code Online (Sandbox Code Playgroud)
models_shared.py
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
Run Code Online (Sandbox Code Playgroud)
models.py
from models_shared import db
class Car(db.Model):
id = db.Column(db.Integer, primary_key=True)
make = db.Column(db.String(64), index=True, unique=True)
color = db.Column(db.String(64), index=False, unique=False)
Run Code Online (Sandbox Code Playgroud)
routes.py
...
@app.route('/is_available', methods=['GET'])
def is_available():
#???
Run Code Online (Sandbox Code Playgroud) python ×7
django ×5
angularjs ×1
celery ×1
django-forms ×1
django-orm ×1
javascript ×1
json ×1
label ×1
list ×1
many-to-one ×1
mysql ×1
pickle ×1
rabbitmq ×1
reference ×1