Как установить значение по умолчанию для набора форм - django
Я пытаюсь установить значение по умолчанию для моего django inline formset, но оно отображается только для первой формы, остальные пустые !
class Booking(models.Model):
admin = models.ForeignKey(User,on_delete=models.CASCADE)
takes_by = models.ManyToManyField('vistors.Vistor',through='BookingVisitor',related_name='vistors')
class BookingVisitor(models.Model):
visitor = models.ForeignKey('vistors.Vistor',on_delete=models.PROTECT,related_name='visitor_booking')
booking = models.ForeignKey(Booking,on_delete=models.PROTECT,related_name='booking_bookingvisitors')
reason = models.CharField(max_length=50,default='some text')
но это не работает!? Я также пробовал это в моем представлении
initial_data = {'reason':'some text'}
VistorsInlineFormset(prefix='formset',initial=initial_data)
но он выдает эту ошибку :
Ошибка ключа в /en/some/url 0
и это мой forms.py
class BookingVisitorForm(forms.ModelForm):
visitor = forms.ModelChoiceField(
queryset=Vistor.objects.all().order_by('-pk'),empty_label='--------',
)
class Meta:
model = BookingVisitor
fields = ['visitor','reason']
VistorsInlineFormset = inlineformset_factory(Booking,BookingVisitor,form=BookingVisitorForm,extra=1,can_delete=True)
От docs:
>>> formset = ArticleFormSet(initial=[
... {'title': 'Django is now open source',
... 'pub_date': datetime.date.today(),}
... ])
Таким образом, ваш код должен быть таким:
initial_data = [{'reason':'some text'},] # a list
VistorsInlineFormset(prefix='formset',initial=initial_data)