Итак, у меня есть Django приложение relate
. Я хочу использовать formset для отображения как можно большего числа Topics
. Моя проблема в том, что, когда я отрисовываю шаблон, ничего не появляется. Однако, когда я переместил соответствующие строки кода в другое приложение Django, которое также использует набор форм, набор форм работает отлично. Как бы я не хотел переходить в другое приложение, которое я sh мог бы попробовать разработать из relate
. Я думал, что, может быть, есть реализации / импорты, которые есть в другом приложении, которые позволяют ему реализовать мой набор форм. Но я проверил все и не нашел ничего, что могло бы помешать работе моей формы. Буду очень признателен за вашу помощь. Заранее спасибо!
models.py
from __future__ import unicode_literals
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse
from django.conf import settings
class Topic(models.Model):
name = models.CharField(max_length=250)
concepts = models.TextField()
def __str__(self):
return self.name
forms.py
from django.db import models
from django import forms
from django.forms import ModelForm, formset_factory
from relate.models import Topic
class TopicForm(ModelForm):
class Meta:
model = Topic
fields = ['name', 'concepts',]
views.py
from __future__ import unicode_literals
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.conf import settings
from relate.forms import TopicForm
from django.views.generic import View
from django.forms import formset_factory
from relate.models import Topic
def relate_topics(request, method="POST"):
TopicFormSet = formset_factory(TopicForm, extra=2, max_num=10, can_delete=True)
if request.method == "GET":
formset = TopicFormSet(request.GET or None)
elif request.method == "POST":
formset = TopicFormSet(request.POST)
if formset.is_valid():
for form in formset:
form.save()
return redirect('index')
return render(request, 'relate/relate_topics.html', {'formset': formset,})
relte_topics. html
<h1>Hey</h1>
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
{{ form.as_p }}
{% endfor %}
urls.py
from django.conf.urls import url
from . import views
appname = 'relate'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^relate_topics/$', views.relate_topics, name='relate_topics'),
]