Cod*_*ein 0 python django shell django-1.5
我有一个简单的模型
from django.db import models
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
def getJustDomainName(self):
""" for example, if website is http://www.someweb.com/index.html, return someweb.com """
return '0'; #TODO
Run Code Online (Sandbox Code Playgroud)
我实际上并没有getJustDomainName在这里实现方法名称,因为我只是以此为例.
我想在Django Shell中测试这个方法.所以我尝试做类似的事情;
Publisher.objects.all()[0].getJustDomainName
Run Code Online (Sandbox Code Playgroud)
但作为回报我得到了
<bound method Publisher.getJustWebsiteName of <Publisher: Publisher(#1): RandomHouse>>
Run Code Online (Sandbox Code Playgroud)
这不是我所期待的.我期待(和期望)一个返回函数返回的结果.
如何从shell中正确调用此模型方法?
你没有调用这个方法.你需要这样做:
Publisher.objects.all()[0].getJustDomainName()
Run Code Online (Sandbox Code Playgroud)
注意()那里的括号.你现在的方式只是打印方法本身(<bound method...等等不是错误.它只是告诉你方法,而不是()像你用任何函数那样运行它).
PS
我猜你是一个javascript(或其他东西)开发人员,他是python的新手(你问的是非常基本的python,你使用的是camel-casing而且;在一行的末尾是不必要的).在;通常是好,但要知道,在蟒蛇的约定是使用_的函数和方法,即get_just_domain_name不是getJustDomainName(我会一直摆脱了那个just完全,它是多余的).两者都是有效的,它只是该语言的常见惯例.