【发布时间】:2026-02-19 07:45:01
【问题描述】:
我正在尝试为我的 django 内联表单集设置默认值,但它只显示第一个表单,其他为空!
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 处的 KeyError 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)
【问题讨论】:
标签: django default formset inline-formset