0
私はdjangoフォームでいくつかの問題に直面しています。問題は、このコードを "attrs = {'class': 'form-control'} 'と入れても問題ありませんが、siteとinspect-elementに行くと、htmlにはこのクラスが含まれませんdjangoフォームに問題があります
。
<input id="id_name" maxlength="100" name="name" type="text" required="">
あなたはそれが「クラス」をレンダリングしていなかった見ることができるように:「フォームコントロール」を
私が何か間違ったことかもしれない。この問題を解決する方法を教えてください?
forms.py、view.pyと.htmlのファイルのコードが
forms.py
from django import forms
from .models import ContactUs
class ContactUsForm(forms.ModelForm):
name = forms.CharField(required=True, widget=forms.TextInput(attrs={'class': 'form-control'})),
email = forms.EmailField(required=True),
subject = forms.CharField(required=True),
message = forms.CharField(
required=True,
widget=forms.Textarea(attrs={'class': 'form-control'})
),
class Meta:
model = ContactUs
fields = ['name', 'email', 'subject', 'message']
contact.html
<div class="container main-container">
<div class="row">
<div class="col-xs-offset-1 col-xs-10 col-md-offset-1 col-md-5">
<h5>Contact Us</h5>
<form method="POST" action="/contact/">{% csrf_token %}
{% for fields in form %}
<div class="form-group">
<label for="{{ fields.id_for_label }}">{{ fields.label }}</label>
{{ fields }}
</div>
{% endfor %}
<input class="btn btn-primary" type="submit" value="Submit">
</form>
</div>
</div>
以下に示します。
views.py
from .forms import ContactUsForm
from django.shortcuts import render, redirect
from django.contrib import messages
from django.http import HttpResponseRedirect
def Contact(request):
if request.method == 'POST':
form = ContactUsForm(request.POST)
if form.is_valid():
model_instance = form.save()
messages.add_message(request, messages.SUCCESS, 'YOUR FORM HAS BEEN SUBMITTED')
return redirect('/contact/')
else:
return HttpResponseRedirect('/admin/')
else:
return render(request, 'core/contact.html', {'form': ContactUsForm()})
私の以前のforms.pyに何か問題があり、私のコードは –
https://docs.djangoproject.com/en/1.10/refを働いていなかった理由を教えてくださいすることができます/ forms/widgets /#widget これは、あなたのforms.pyがうまくいかない理由を調べるのに役立ちます。 –