0

ユーザーがオブジェクトにメモを追加できるフォームを作成しようとしています。これは django コメント パッケージに似ていますが、私はそれを機能させることができませんでした (django ドキュメントのチュートリアルは機能していません)。

ここに私のモデルとModelFormがあります:

class Note(models.Model):
    text = models.CharField(max_length = 200)
    thing_about = generic.GenericForeignKey('content_type','object_id')
    content_type = models.ForeignKey(ContentType,
        limit_choices_to={"model__in": ("Individual", "ArtsOrganization",'Presenter', "BookingAgent","Festival","ManagementCompany", "OtherOrganization","PresenterCompany", "Venue", "Gig", "Venue")},blank=True, null=True)
object_id = models.IntegerField(db_index=True, blank=True, null=True,)

    date_added = models.DateTimeField(('date added'), auto_now_add=True)
    date_modified = models.DateTimeField(('date modified'), auto_now=True)
    author = models.ForeignKey(User)

    def __unicode__(self):
        return u'%s' % (self.date_added)

class NoteForm(ModelForm):
    class Meta:
        model = Note

私のviews.py

def note(request):
    if request.method == 'POST': # If the form has been submitted...
        form = NoteForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
        # Process the data in form.cleaned_data
            form.save()
            return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = NoteForm() # An unbound form

    return render(request, 'includes/note.html', {
    'form': form,
    })

myapp/templates/includes/note.html の下にテンプレートを作成して、オブジェクトごとにフォームを使用できるようにしました (すべて異なる詳細ページがあります)。つまり、同じフォームを使用してバンド ページと会場ページにメモを作成します。

テンプレート「includes/notes.html」の内容は次のとおりです。

<form action="includes/note/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>

問題は、フォームがレンダリングされないことです。ビューがテンプレートに到達しているかどうかわからないので、どのフォームをレンダリングするかさえわかります。

4

0 に答える 0