1

「parentId」や「email_notification」などのカスタムフィールドを使用してコメントアプリを作成しました。テンプレートでは、commentsタグは追加したアイテムを引き出すことができますが、「get_comment_form」タグはフォームを表示しません。また、そのフォームのフィールドをカスタマイズするにはどうすればよいですか?

models.py

from django.db import models
from django.contrib.comments.models import Comment

class CommentWithParent(Comment):
    parentId = models.IntegerField(default = 0)
    email_notification = models.BooleanField(default = False)

forms.py

from django import forms
from django.contrib.comments.forms import CommentForm
from mblog.my_comment.models import CommentWithParent
from django.db import models


class CommentWithParentForm(CommentForm):

    parentId = models.IntegerField(default = 0)
    email_notification = models.BooleanField(default = False)

    def get_comment_model(self):
        return CommentWithParent

    def get_comment_create_data(self):
        data = super(CommentWithParentForm, self).get_comment_create_data()
        return data

    def get_form(self):
        return self

テンプレートファイル

{% load comments %}
{% get_comment_form for entry as form %}
4

1 に答える 1

0

フォームテンプレートのカスタマイズについて詳しくは、ドキュメントをご覧ください。一般的に、フォームから一部のフィールドを非表示にしたり、フィールドの表示に使用するフォームウィジェットを制御したりできます。外観を変更するには、アプリケーションのCSSを使用するか、ドキュメントで説明されているように新しいテンプレートを作成します。

get_comment_formタグが機能しない理由がよくわかりません。上にリンクされているドキュメントは、テンプレートが別のタグを使用してレンダリングできるフォームがビューに必要であることを示しています。これがドキュメントのそのセクションです。Django 1.4を使用していない場合は、状況が少し異なる場合があります。

于 2012-09-20T13:29:00.843 に答える