【发布时间】:2018-09-28 21:47:08
【问题描述】:
models.py-
class B(models.Model):
filename = models.FileField(upload_to='files/')
user = models.ForeignKey(User)
class A(models.Model):
file = models.ManyToManyField(B, blank=True)
forms.py
class AForm(forms.ModelForm):
file = forms.FileField(label='Select a file to upload', widget=forms.ClearableFileInput(attrs={'multiple': True}), required=False)
class Meta:
model = A
fields = '__all__'
views.py-
if request.method == 'POST':
a = A()
form = AForm(request.POST, request.FILES, instance=a)
if form.is_valid():
a = form.save(commit=False)
files = request.FILES.getlist('file')
for f in files:
fmodel = B(filename=f, user=request.user)
fmodel.save()
a.file.add(fmodel)
a.save()
这会生成 505 错误,服务器日志将其显示为 OSError,错误位于 fmodel.save()。我认为 A 期望模型 B 已经存在 - 但不确定如何实现它。对这东西超级陌生。
【问题讨论】:
标签: django django-models django-forms many-to-many