Итак, я пытаюсь сохранить формы, но с трудным вычислением лучшего метода!Formset save empty entry
До сих пор, что я пробовал ниже, работал, НО он сохраняет сохранение пустой записи!
Если я удалю его, он добавляется снова в следующий раз, когда я заполню форму и отправлю. Данные сохраняются правильно (я проверял admin и базу данных), но эта пустая запись продолжает добавляться, это как автоматически один раз генерирует пустое сообщение ... я полагаю, что это может быть что-то не так с для , но из того, что я искал в Google, то, что я пытаюсь сделать, кажется, не сильно отличается от примеров, которые я пытался выполнить. Также иногда возникает ошибка с дублирующимся ключом cpf, хотя записи уникальны и, несмотря на ошибку, сохраняются в db.
Каков наилучший способ справиться с сохранением форм? Я ищу по всему, я прочитал документацию django formset и пробовал разные методы, но это единственный, который работал до сих пор!
И у меня есть еще 4 формы, которые связаны с пользователем через один к одному.
Я использовал обычные формы, и все было хорошо, тогда мне пришлось сменить форму и получить все потерянные ха-ха!
Любые идеи оцениваются!
Редактирование: Я просто понял, что он прыгает 2 id при сохранении в db, как 1 - 3 - 5 ... я полагаю, что это действительно дублирование, но сохранение только одной записи?
views.py
UserFormSet = formset_factory(UserForm)
\t if request.method == 'POST':
\t \t formset = UserFormSet(request.POST)
\t \t if formset.is_valid():
\t \t \t for form in formset:
\t \t \t \t if form.is_valid():
\t \t \t \t \t form.save()
forms.py
class UserForm(forms.ModelForm):
\t name = forms.CharField(
\t \t label="Nome completo",
\t \t required = True,
\t)
\t bdate = forms.CharField(
\t \t label="Data de nascimento",
\t \t required = True,
\t)
\t gender = forms.ChoiceField (
\t \t label="Sexo",
\t \t required = True,
\t \t choices = gender_choice,
\t)
\t cpf = forms.CharField(
\t \t label="CPF",
\t \t required=True,
\t \t max_length=14,
\t)
\t oab = forms.CharField(
\t \t label="OAB",
\t \t required=True,
\t)
\t phone = forms.CharField(
\t \t label="Telefone",
\t \t required=True,
\t)
\t email = forms.EmailField(
\t \t label="E-mail",
\t \t required=True,
\t \t widget = forms.TextInput()
\t)
\t class Meta:
\t \t model = User
models.py
class User(models.Model):
\t name = models.CharField(max_length=100, verbose_name='Nome Completo')
\t bdate = models.CharField(max_length=10, verbose_name='Data de Nasc.')
\t gender = models.CharField(max_length=15, verbose_name='Sexo')
\t cpf = models.CharField(max_length=14, unique=True, verbose_name='CPF')
\t oab = models.CharField(max_length=15, unique=True, verbose_name='OAB')
\t phone = models.CharField(max_length=15, verbose_name='Celular')
\t email = models.EmailField(max_length=50, verbose_name='E-mail')
\t def __unicode__(self):
\t \t return self.name
\t class Meta:
\t \t verbose_name = u'Identificação'
\t \t verbose_name_plural = u'Identificação'
curriculo.html
<form ...>
<h3>Dados de Identificação</h3>
{{ UserFormSet.management_form }}
{% for form in UserFormSet %}
<label>Nome completo:</label>
{{ form.name }}
<label>Data de nascimento:</label>
{{ form.bdate }}
<label>Sexo:</label>
{{ form.gender }}
<label>CPF:</label>
{{ form.cpf }}
<label>OAB:</label>
{{ form.oab }}
<label>Telefone:</label>
{{ form.phone }}
<label>E-mail:</label>
{{ form.email }}
{% endfor %}
</form>
спасибо yooou !!! это полностью сработало !! :) –