(Django 1.x,Python 2.6.x)
我有以下模型:
class Animal(models.Model):
pass
class Cat(Animal):
def __unicode__(self):
return "This is a cat"
class Dog(Animal):
def __unicode__(self):
return "This is a dog"
class AnimalHome(models.Model):
animal = models.ForeignKey(Animal)
Run Code Online (Sandbox Code Playgroud)
我没有实例化动物,因为这应该是一个虚拟类.我已经实例化了Cats and Dogs,但是在AnimalHome的Admin Page中,我对Animal的选择显示为"Animal object"(我猜是默认的__unicode __()),而不是我为两个子类定义的__unicode__.救命.
我想,抽象的基类问题是这个问题的一个问题.即使Animal不应该是抽象的,我仍然有一个问题,由于某种原因,由于ForeignKey是在Animal上定义的而不是其子类之一,因此调用了超类方法而不是子类.在OO编程中,当你调用object.method()时,你应该得到最低子类的实现,你必须做额外的工作来获得任何超类的实现.那么为什么在子类上定义__unicode__是不够的---实际上问题可能是__unicode__根本没有被调用,因为对Animal类的内省显示它没有被定义.所以,如果我为Animal定义__unicode__并让它调用子类'
好的,我认为我理解ORM问题.这两个答案都帮助我理解了这一点,谢谢.在尝试这个时,我发现当Django保存子类模型时,它会做两件事:(1)它为超类表中的子类对象创建一行,(2)它使子类表中的PK与超类表中指定的PK.子类表中的这个PK名为superclass_ptr.基于此,我编造了以下内容.我很感激反馈.
Class Animal(models.Model)
def __unicode__(self):
if Dog.objects.filter(pk=self.pk).count() > 0:
return unicode(Dog.objects.get(pk=self.pk))
elif Cat.objects.filter(pk=self.pk).count() > 0:
return unicode(Cat.objects.get(pk=self.pk))
else:
return "An Animal!"
Run Code Online (Sandbox Code Playgroud)
劳伦斯似乎最关注这个问题.Cat和Dog将有不相交的PK集(并且Animal的任何子类将具有与其超类的记录相同的PK),但不幸的是Django不会在幕后执行任何工作:"我是动物.我知道动物有狗和猫的子类.具体来说,我是动物3号,而且我刚刚检查过,它也是一个Cat 3号.这意味着我实际上是Cat 3号.尽管这看起来完全可能且非常合理(因为Cat不会做任何动物无法做到的事情)使用Python的内省.谢谢你们.
我在Windows窗体上有一些listview控件,我已经使用VS2005中的属性网格为它们分配了一个共同的contextmenustrip.
现在,当从任何列表视图中的contextmenu进行选择时,有没有办法可以获得对凸起菜单的正确宿主控制?
当我从它创建缩略图时,我在尝试保持png的透明度方面遇到一些麻烦,任何人都有这方面的经验吗?任何帮助都会很棒,这就是我目前正在做的事情:
$fileName= "../js/ajaxupload/tees/".$fileName;
list($width, $height) = getimagesize($fileName);
$newwidth = 257;
$newheight = 197;
$thumb = imagecreatetruecolor($newwidth, $newheight);
imagealphablending($thumb, true);
$source = imagecreatefrompng($fileName);
imagealphablending($source, true);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagesavealpha($thumb, true);
imagepng($thumb,$newFilename);
Run Code Online (Sandbox Code Playgroud) 我正在为Apache共享托管服务器开发一个Web应用程序.我已经在Perl中编写了一些代码,但我最近发现,令我惊讶的是,共享托管服务提供商没有提供mod_perl或安装它的方法.
我有点担心通过CGI运行Perl Web应用程序而没有mod_perl会让它变得非常慢?我应该将所有代码切换到PHP,那会更快吗?
我之所以选择Perl,是因为我对Perl非常熟悉而不是PHP.此外,我希望能够在Web开发领域之外使用我的Perl库.
因此,如果您对Apache Web开发有经验,那么您是否可以了解我应该采取哪些方向.
为了这个问题,让我们说Web应用程序每天会有500多次点击.
如果没有mod_perl,PHP或Perl会更快?
在此先感谢您的帮助.
我有一个html(dreamweaver CSS3)的站点目录,其中包含许多子目录,这些子目录包含许多下拉菜单的HTML文件.它们可以正常工作,但它们都有JavaScript菜单,可以保存在单独的文件中.所以,我想使用Include.每次我想测试包含时,我都不想将我的文件FTP到HostGator.我希望在我的本地机器上有这个.所以,我第一次尝试设置XAMMP,然后在localhost上运行我的html文件(站点),所以我可以在将所有内容移植到HostGator并将其置于实时之前看到它们的样子.
我尝试将主站点文件夹复制到htdocs,然后将路径复制到我想在Firefox中的localhost前面运行的文件,但是它给了我找不到的文件: http:// localhost/xampp/PL_20080923/0-部分/ 000-ComingSoon/PHPTestComingSoonNMBT-的test.html
我有太多子目录吗?为什么找不到文件?它就在那里.
试过这个: http://localhost/xampp/htdocs/PL_20080923/0-Sections/000-ComingSoon/PHPTestComingSoonNMBT-Test.html
不行.
我有一个FAT12图像文件,我必须打开它并阅读它.我想查看这个图像文件(目录/文件与in)所以我可以知道我应该得到什么结果.有人知道一个好的软件可以让我查看这个FAT12图像文件吗?还有人可以在尝试阅读此图像文件的内容时指导正确的方向吗?
如何将ActualWidth用户控件的某个组件的属性公开给用户?
我已经找到了很多关于如何通过创建新的依赖项属性和绑定来公开普通属性的示例,但是没有关于如何公开只读属性的示例ActualWidth.
从我读过的.net 4.0预览到现在已经有很多关于下一个.net版本如何处理和使用带有多个内核的cpus的讨论.我们将有像plinq这样的附加功能,可以帮助我们使用多个内核.我的问题是,当我想要的是让我的应用程序运行得更快时,为什么我必须在处理多个核心时烦恼.为什么不能有一种虚拟cpu层将所有核心暴露为我的应用程序的1核心?
编辑:我想重新解释我的问题,以避免误解,是否可以制作一个软件,将虚拟线程暴露给我的应用程序,速度要快10倍,因为它使用了10个内核.我不希望让不同的线程在并行中执行操作,我只希望我的一个线程运行得更快.我想今天这不是一个大问题,但很快我们将有80个核心处理器可供使用,然后我会感觉有点缺点只使用其中的一个.
在我的具体情况下,我有两种"消息",我需要检索和分页.
让我们省略细节,然后说第一种是在名为Msg1的模型中,另一种叫做Msg2
这两个模型的字段完全不同,两个模型共有的唯一字段是"日期"和"标题"(当然还有id).
我可以得到Msg1.objects.all(),Msg2.objects.all()但我可以将这两个查询组合成一个查询,按日期排序,并对其进行分页吗?
我需要保留查询的惰性.
简单的解决方案是list(query)查询并将它们组合在一个python列表中.但由于显而易见的原因,这是低效的.
我查看了模型和dp-api上的django引用,但似乎没有办法将不同模型/表的查询合并为一个.
.net ×2
django ×2
php ×2
actualwidth ×1
binary ×1
binding ×1
c ×1
contextmenu ×1
django-admin ×1
file ×1
filesystems ×1
forms ×1
htdocs ×1
listview ×1
multicore ×1
path ×1
perl ×1
png ×1
python ×1
readonly ×1
sql ×1
subdirectory ×1
transparency ×1
windows ×1
wpf ×1