1

私は Python/Django 初心者です。そのため、どんな助けでも大歓迎です。

django-fluent-contentsを使用しようとしています

models.py

from django.core.urlresolvers import reverse
from django.db import models
from fluent_contents.models.fields import PlaceholderField, PlaceholderRelation, ContentItemRelation
from fluent_contents.models import ContentItem


class Article(models.Model):
    title = models.CharField("Title", max_length=200)
    slug = models.SlugField("Slug", unique=True)
    content = PlaceholderField("article_content")

    placeholder_set = PlaceholderRelation()
    contentitem_set = ContentItemRelation()

    class Meta:
        verbose_name = "Article"
        verbose_name_plural = "Articles"

    def __unicode__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('article-details', kwargs={'slug': self.slug})

admin.py

from django.contrib import admin
from article.models import Article
from fluent_contents.admin import PlaceholderFieldAdmin


class ArticleAdmin(PlaceholderFieldAdmin):
    prepopulated_fields = {'slug': ('title',)}

    fieldsets = (
        (None, {
            'fields': ('title', 'slug', ),
        }),
        ("Contents", {
            'fields': ('content',),
            'classes': ('plugin-holder',),
        })
    )

admin.site.register(Article, ArticleAdmin)

移行にを使用しています。

    db.create_table(u'article_article', (
        (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
        ('title', self.gf('django.db.models.fields.CharField')(max_length=200)),
        ('slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=50)),
    ))
    db.send_create_signal(u'article', ['Article'])

「コンテンツ」フィールド用の列が作成されていないようです。

したがって、django admin を介して新しい「記事」を追加しようとすると —

FieldError at /manage/article/article/add/

Unknown field(s) (content) specified for Article. Check fields/fieldsets/exclude attributes of class ArticleAdmin.

admin.py からフィールドセットを削除すると

class ArticleAdmin(PlaceholderFieldAdmin):
    prepopulated_fields = {'slug': ('title',)}

admin.site.register(Article, ArticleAdmin)

「コンテンツ」フィールドはdjango管理者に表示されません

@vdboorへの返信..これが私のインストール済みアプリです...

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',

    # 3rd party apps
    'south',
    'django_extensions',
    'compressor',
    'debug_toolbar',
    'fluent_contents',
    'fluent_contents.plugins.text',
    'django_wysiwyg',

    # Project specific apps go here
    'article',
) 

また、レポのサンプルアプリをガイドとして使用しています...余分なプラグインモデルを削除しました

参考までに使用しています

  Django==1.6
  MySQL-python==1.2.4
  South==0.8.4

助けてくれてありがとう:-)

4

2 に答える 2

0

「コンテンツ」フィールド用の列が作成されていないようです。

そうですPlaceholderField、逆ジェネリック関係になります。

  • とりあえず宣言を削除してみて、fieldsets他にどのようなエラーが発生するかを確認してください。
  • リポジトリには、example実行してアプリと比較できるアプリケーションも含まれています。

ばかげた質問ですがfluent_contents、INSTALLED_APPS に含まれていますか?

于 2013-12-16T09:09:55.797 に答える
0

さらにフィールドを追加する必要があります。示されているcontentでは、 が別のテーブル モデルContentItemに格納されているためです。

from fluent_contents.models.fields import PlaceholderField, PlaceholderRelation, ContentItemRelation

class Article(models.Model):
    title = models.CharField("Title", max_length=200)
    slug = models.SlugField("Slug", unique=True)
    content = PlaceholderField("article_content")

    placeholder_set = PlaceholderRelation()  # <-- this
    contentitem_set = ContentItemRelation()  # <-- and this

    class Meta:
        verbose_name = "Article"
        verbose_name_plural = "Articles"
于 2013-12-16T04:28:19.380 に答える