Как сохранить набор форм с помощью request.user? Кажется, я не могу получить форму для сохранения объекта request.user при сохранении при использовании Django Formsets.Сохранение форм с помощью request.user
forms.py
class CreditOptionsForm(forms.ModelForm):
crew_position = forms.ModelChoiceField(CrewPosition.objects.all(),
widget=autocomplete_light.ChoiceWidget('CrewPositionAutocomplete'), required=False)
class Meta:
model = CreditOptions
exclude = ('user',)
OptionFormset = formset_factory(CreditOptionsForm, extra=3)
models.py
class CrewPosition(models.Model):
name = models.CharField(max_length=150)
def __unicode__(self):
return self.name
class CreditOptions(models.Model):
year = models.IntegerField(max_length=4, help_text='e.g. 1995', null=True, blank=True)
project_name = models.CharField(max_length=150, null=True, blank=True)
crew_position = models.ForeignKey(CrewPosition, null=True, blank=True)
user = models.ForeignKey(User, null=True, blank=True)
views.py
from .forms import CreditForm, SkillsForm, OptionFormset
@login_required(login_url='/')
def add_skills(request, template_name):
user = request.user
formset = OptionFormset(user=user)
if request.method == 'POST':
formset = OptionFormset(request.POST, user=user)
if formset.is_valid():
for form in formset.forms:
form.save()
messages.success(request, "Successfully created your profile.")
return redirect(urlresolvers.reverse('skills'))
return render(request, template_name, {
'formset': formset
})
Когда я сохраняю, пользователь никогда не будет сохранен. Я пробовал в своей петле:
form.save(commit=False)
form.user = user
form.save()
Но это не спасает пользователя.
Woops, это была моя ошибка, спасибо! – JeffC
добро пожаловать. – sha256