Я попытался решения из следующих сообщений:Джанго ModelForm не сохранение данных
Saving data from ModelForm: Не работает
ModelForm data not saving django: Не работает.
Я пытаюсь сохранить данные из ModelForm в модель.
models.py:
class Testimonials(models.Model):
name = models.CharField(max_length=128)
credentials = models.CharField(max_length=128)
test = models.CharField(max_length=2000)
id = models.AutoField(primary_key=True)
NO = 'NO'
YES = 'YES'
APPROVAL = ((NO, 'no'), (YES, 'yes'))
verified = models.CharField(choices=APPROVAL, default=NO, max_length=3) #Field for making sure only verified testimonials are displayed
def __unicode__(self):
return self.id
forms.py:
class TestimonialForm(forms.ModelForm):
name = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control input-area', 'placeholder': 'Enter your name'}), required=True)
credentials = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control input-area', 'placeholder': 'Enter your designation'}), required=True)
test = forms.CharField(widget=forms.Textarea(attrs={'class': 'form-control test-form-area', 'placeholder': 'Testimonial', 'rows': '5'}), required=True)
verified = forms.ChoiceField(widget=forms.HiddenInput())
class Meta:
model = Testimonials
views.py
def add_testimonial(request):
context = RequestContext(request)
if request.method == 'POST':
form = TestimonialForm(request.POST)
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect('/testimonials/thanks/')
else:
print form.errors
else:
form = TestimonialForm()
return render_to_response('templates/add_testimonial.html', {'form': form}, context)
Шаблон:
<form id="testimonial_form" method="POST" action="/testimonials/thanks/">
{% csrf_token %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
{{ field.help_text}}
{{ field }}
{% endfor %}
<input type="submit" name="submit" value="Add testimonial" class="btn btn-info test-button"/>
</form>
EDIT:
urls.py
url(r'^testimonials/all/', views.testimonials, name='testimonial'),
url(r'^testimonials/thanks/', views.testimonials_thanks, name='testimonial_thanks'),
url(r'^add_testimonial', views.add_testimonial, name='add_testimonial'),
Однако, на редирект, он не сохраняет форму в модели, которые я проверяю с обеих PHPMyAdmin (с использованием MySQLDb) и панель администратора Django , Любая идея почему?
Добавил urls.py. Кроме того, мой исходный код имел действие как «add_listing». Это было сохранено в модели, но я хотел перенаправить на другой URL-адрес на успех, поэтому я изменил действие на 'отзывы/благодарности' – Newtt
Отлично, я обновил свой ответ. Дайте мне знать, как вы ладите. – Fiver
И любые изменения, которые необходимо внести в views.py? Потому что я пробовал это и не было никакого эффекта. Он не перенаправлялся на «отзывы/благодарности /». Если это помогает, мои данные формы в консоли выглядят следующим образом: 'verified:' 'name: Save' ' credentials: Save' 'test: Save' ' submit: Добавить отзыв' – Newtt