我正试图在另一个中获取模型对象实例.我提出这个错误:
Manager isn't accessible via topic instance
Run Code Online (Sandbox Code Playgroud)
这是我的模特:
class forum(models.Model):
# Some attributs
class topic(models.Model):
# Some attributs
class post(models.Model):
# Some attributs
def delete(self):
forum = self.topic.forum
super(post, self).delete()
forum.topic_count = topic.objects.filter(forum = forum).count()
Run Code Online (Sandbox Code Playgroud)
这是我的观点:
def test(request, post_id):
post = topic.objects.get(id = int(topic_id))
post.delete()
Run Code Online (Sandbox Code Playgroud)
我得到:
post.delete()
forum.topic_count = topic.objects.filter(forum = forum).count()
Manager isn't accessible via topic instances
Run Code Online (Sandbox Code Playgroud) (用Python shell编写)
>>> o = object()
>>> o.test = 1
Traceback (most recent call last):
File "<pyshell#45>", line 1, in <module>
o.test = 1
AttributeError: 'object' object has no attribute 'test'
>>> class test1:
pass
>>> t = test1()
>>> t.test
Traceback (most recent call last):
File "<pyshell#50>", line 1, in <module>
t.test
AttributeError: test1 instance has no attribute 'test'
>>> t.test = 1
>>> t.test
1
>>> class test2(object):
pass
>>> t = test2()
>>> t.test = 1
>>> …Run Code Online (Sandbox Code Playgroud) 现货价格通常远低于EC2服务器的正常按需价格,但价格差异很大.现货价格是否高于按需价格?
如果没有,总是使用最高出价等于普通按需服务器的现货实例是否有意义?这样,现货实例理论上会永远持续下去(因为现货价格永远不会超过最高出价)并且会为您节省大量资金.每个人都已经这样做了吗?
我一直在研究我的Django Web应用程序的离线版本,并经常删除某个ModelX的模型实例.
我是从管理页面完成此操作并且没有遇到任何问题.该模型只有两个字段:名称和顺序,与其他模型没有其他关系.
新实例被赋予下一个可用的pk,当我删除所有实例时,添加一个新实例会产生pk = 1,这是我所期望的.
将代码在线移动到我的实际数据库我注意到情况并非如此.我需要更改模型实例,所以我删除了它们,但令我惊讶的是,主键不断增加而不重置为1.
使用我检查过的Django API进入数据库并且旧实例已经消失,但是即使添加新实例也会产生一个主键,它可以在最后一个被删除的实例停止的地方找到,而不是1.
想知道是否有人知道这里可能存在什么问题.
所以我正在设计一个成绩簿界面,我的课程定义为:
<script>
course = new Object();
var name;
var gradingareas;
var finalgrade;
</script>
Run Code Online (Sandbox Code Playgroud)
然后我想创建一个新实例:
var gradingareas = new Array("Homework", "Classwork", "Exams");
course1 = new course("CS1500", gradingareas, 85);
Run Code Online (Sandbox Code Playgroud)
我也试过没有前面的var无济于事.我得到一个"未捕获的TypeError:对象不是一个函数"我是一个非常新的JavaScript,所以我甚至不知道我是否正确的方式.任何帮助表示赞赏谢谢.
在程序结束时,我希望将类的所有实例中的特定变量加载到字典中.
例如:
class Foo():
__init__(self):
x = {}
foo1 = Foo()
foo2 = Foo()
foo...etc.
Run Code Online (Sandbox Code Playgroud)
假设实例的数量会有所不同,我希望每个Foo()实例的x dict都加载到一个新的dict中.我该怎么办?
我在SO中看到的例子假设一个已经有实例列表.
我正在尝试使用Python的boto库从我的AWS账户中的实例获取标签.
虽然此代码段可以正常使用所有代码:
tags = e.get_all_tags()
for tag in tags:
print tag.name, tag.value
Run Code Online (Sandbox Code Playgroud)
(e是EC2连接)
当我从各个实例请求标签时,
print vm.__dict__['tags']
Run Code Online (Sandbox Code Playgroud)
要么
print vm.tags
Run Code Online (Sandbox Code Playgroud)
我得到一个空列表(vm实际上是一个实例类).
以下代码:
vm.__dict__['tags']['Name']
Run Code Online (Sandbox Code Playgroud)
当然导致:
KeyError: 'Name'
Run Code Online (Sandbox Code Playgroud)
我的代码一直工作到昨天,突然间我无法从实例中获取标签.
有人知道AWS API是否存在问题?
我正在阅读Scala论文的介绍,并发现以下声明:
应该注意的是,一些面向对象的语言没有类的概念.
问题:哪些面向对象的语言没有类概念,它们如何处理类型(类) - 对象(类型实例)关系?
您可以使用以下代码创建类引用:
Class M = [NSMutableString class]; // NSMutableString (for example).
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用以下代码调用该已保存类的方法:
[M string];
Run Code Online (Sandbox Code Playgroud)
但是你可以从该类名创建实例(我知道以下不起作用)?
M *newInstance;
Run Code Online (Sandbox Code Playgroud) 我正在覆盖__new__()类的方法以返回具有特定__init__()集合的类实例.Python似乎调用类提供的__init__()方法而不是特定于实例的方法,尽管Python文档在
http://docs.python.org/reference/datamodel.html
说:
典型的实现通过使用带有适当参数的super(currentclass,cls).__ new __(cls [,...])调用超类的__new __()方法创建类的新实例,然后在返回之前根据需要修改新创建的实例它.
如果__new __()返回一个cls实例,那么新实例的__init __()方法将被调用,如__init __(self [,...]),其中self是新实例,其余参数与传递给的相同. __新__().
这是我的测试代码:
#!/usr/bin/env python
import new
def myinit(self, *args, **kwargs):
print "myinit called, args = %s, kwargs = %s" % (args, kwargs)
class myclass(object):
def __new__(cls, *args, **kwargs):
ret = object.__new__(cls)
ret.__init__ = new.instancemethod(myinit, ret, cls)
return ret
def __init__(self, *args, **kwargs):
print "myclass.__init__ called, self.__init__ is %s" % self.__init__
self.__init__(*args, **kwargs)
a = myclass()
Run Code Online (Sandbox Code Playgroud)
哪个输出
$ python --version
Python 2.6.6 …Run Code Online (Sandbox Code Playgroud) instances ×10
python ×4
class ×3
django ×2
object ×2
oop ×2
amazon-ec2 ×1
attributes ×1
boto ×1
cloud ×1
dictionary ×1
javascript ×1
methods ×1
models ×1
objective-c ×1
primary-key ×1
self ×1
theory ×1
types ×1