Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django应用程序:无法分配"''&引用;:&引用;ImageText.link“;必须是一个";链接“;实例_Python_Django_Django Models_Django Cms_Django 1.5 - Fatal编程技术网

Python django应用程序:无法分配"''&引用;:&引用;ImageText.link“;必须是一个";链接“;实例

Python django应用程序:无法分配"''&引用;:&引用;ImageText.link“;必须是一个";链接“;实例,python,django,django-models,django-cms,django-1.5,Python,Django,Django Models,Django Cms,Django 1.5,我正在为Django 1.5.1和Django cms安装构建一个应用程序。 该应用程序旨在允许上传链接到URL的图像。 我的代码: cms\u plugins.py from cms.plugin_base import CMSPluginBase from cms.plugin_pool import plugin_pool from cms.plugins.text.widgets.wymeditor_widget import WYMEditor from django.forms.fi

我正在为Django 1.5.1和Django cms安装构建一个应用程序。 该应用程序旨在允许上传链接到URL的图像。 我的代码:

cms\u plugins.py

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from cms.plugins.text.widgets.wymeditor_widget import WYMEditor
from django.forms.fields import CharField
from models import ImageText

class ImageTextPlugin(CMSPluginBase):
    model = ImageText
    name = "video wall"
    render_template = "video.html"

def render(self, context, instance, placeholder):
    context.update({
        'object':instance,
    })
    return context


  plugin_pool.register_plugin(ImageTextPlugin)
 from django.db import models
 from django.db.models import fields 
 from filer.fields.image import FilerImageField
 from filer.fields.file import FilerFileField
 from cms.models import CMSPlugin


 class ImageText(CMSPlugin):
      image = FilerImageField(related_name="image0")
      link = models.CharField(max_length=255, blank=True)
 from django.contrib import admin
 from models import ImageText

 class ImageTextAdmin(admin.ModelAdmin):
    pass


  admin.site.register(ImageText, ImageTextAdmin)
型号.py

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from cms.plugins.text.widgets.wymeditor_widget import WYMEditor
from django.forms.fields import CharField
from models import ImageText

class ImageTextPlugin(CMSPluginBase):
    model = ImageText
    name = "video wall"
    render_template = "video.html"

def render(self, context, instance, placeholder):
    context.update({
        'object':instance,
    })
    return context


  plugin_pool.register_plugin(ImageTextPlugin)
 from django.db import models
 from django.db.models import fields 
 from filer.fields.image import FilerImageField
 from filer.fields.file import FilerFileField
 from cms.models import CMSPlugin


 class ImageText(CMSPlugin):
      image = FilerImageField(related_name="image0")
      link = models.CharField(max_length=255, blank=True)
 from django.contrib import admin
 from models import ImageText

 class ImageTextAdmin(admin.ModelAdmin):
    pass


  admin.site.register(ImageText, ImageTextAdmin)
admin.py

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from cms.plugins.text.widgets.wymeditor_widget import WYMEditor
from django.forms.fields import CharField
from models import ImageText

class ImageTextPlugin(CMSPluginBase):
    model = ImageText
    name = "video wall"
    render_template = "video.html"

def render(self, context, instance, placeholder):
    context.update({
        'object':instance,
    })
    return context


  plugin_pool.register_plugin(ImageTextPlugin)
 from django.db import models
 from django.db.models import fields 
 from filer.fields.image import FilerImageField
 from filer.fields.file import FilerFileField
 from cms.models import CMSPlugin


 class ImageText(CMSPlugin):
      image = FilerImageField(related_name="image0")
      link = models.CharField(max_length=255, blank=True)
 from django.contrib import admin
 from models import ImageText

 class ImageTextAdmin(admin.ModelAdmin):
    pass


  admin.site.register(ImageText, ImageTextAdmin)
video.html

 <a class="fancybox fancybox.iframe" rel="group" href="{{ instance.link }}">
   <div class="video">
        <img alt="work module image" src="{{ instance.image }}" />
        </div>
 </a>
我不明白是什么原因造成的。有什么想法吗

我的pip冻结

BeautifulSoup==3.2.1
Django==1.5.1
MySQL-python==1.2.4
PIL==1.1.7
Pillow==2.2.1
South==0.8.2
cmsplugin-filer==0.9.5
cmsplugin-zinnia==0.4
django-appconf==0.6
django-blog-zinnia==0.12.3
django-classy-tags==0.4
django-cms==2.4.2
django-filer==0.9.5
django-haystack==1.2.7
django-mptt==0.5.2 
django-polymorphic==0.5.3
django-sekizai==0.7
django-tagging==0.3.1
django-tinymce==1.5.1
django-twitter-tag==1.2
django-xmlrpc==0.1.5
easy-thumbnails==1.4
html5lib==1.0b3
pyparsing==1.5.7
pysolr==3.1.0
pytz==2013.7
requests==2.0.1
six==1.2.0
twitter==1.9.1
wsgiref==0.1.2

这里的问题与您的模式没有多大关系,而是与django如何处理
OneToOne
关系有关

当您将
CMSPlugin
子类化时,django会创建一个隐式的
OneToOne
关系,从您的模型到
CMSPlugin
,反之亦然

在这种情况下,想象以下场景:

我有一个名为
Title
的插件:

class Title(CMSPlugin):
    text = models.CharField(max_length=200)

上面的模型可以通过
CMSPlugin_ptr
属性访问
CMSPlugin
表,而
CMSPlugin
实例可以通过自动创建的属性“Title”访问它的
Title
添加约束
null=True
,然后重试。我已经尝试过,但它给了我无法分配任何约束:“ImageText.link”不允许空值。哦..您需要迁移以允许数据库中的空值。可以使用south,或者如果它处于应用程序的普通阶段,只需添加或删除数据库,然后再添加或删除syncdb。是的,我想我需要删除表…让我试试..删除表和syncdb..但不起作用:(-同样的错误是的-就是这样!!非常感谢-没有意识到它是这样工作的:)这在技术上是准确的,并且可能是当事情变得棘手时唯一的解决办法。更干净的方法是就插件类本身的命名约定达成一致。如果每个插件作者都同意在插件模型中添加
插件
后缀,这将不会是一个问题。我已经打开了一个I关于django cms的问题: