0
私はdjangoアプリを持っていて、複数の画像アップロードに問題があります。 Familymemberモデルのフィールドimage
に追加するまですべてOKでした。 今、私はFamilyMemberの項目を作成できません。フォームセットで複数の画像をアップロードできません
お願いします。ここで
は私のモデルである:ここでは
class Profile(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
created_date = models.DateTimeField(default=timezone.now)
def get_absolute_url(self):
return reverse('profile-update', kwargs={'pk': self.pk})
def __unicode__(self):
return "%s %s" % (self.first_name, self.last_name)
class FamilyMember(models.Model):
profile = models.ForeignKey(Profile)
name = models.CharField(max_length=100)
file = models.FileField(upload_to="localefile/")
relationship = models.CharField(max_length=100)
フォームされています
class ProfileForm(ModelForm):
class Meta:
model = Profile
exclude =()
class FamilyMemberForm(ModelForm):
file = forms.FileField(widget=forms.FileInput(attrs={'multiple': True}))
class Meta:
model = FamilyMember
exclude =()
FamilyMemberFormSet = inlineformset_factory(Profile, FamilyMember,
form=FamilyMemberForm, extra=1)
ここでは、私の見解では作成するために、あります。
class ProfileCreate(CreateView):
model = Profile
fields = ['first_name', 'last_name']
class ProfileFamilyMemberCreate(CreateView):
model = Profile
fields = ['first_name', 'last_name']
success_url = reverse_lazy('profile-list')
def get_context_data(self, **kwargs):
data = super(ProfileFamilyMemberCreate, self).get_context_data(**kwargs)
if self.request.POST:
data['familymembers'] = FamilyMemberFormSet(self.request.POST)
else:
data['familymembers'] = FamilyMemberFormSet()
return data
def form_valid(self, form):
context = self.get_context_data()
familymembers = context['familymembers']
with transaction.atomic():
self.object = form.save()
if familymembers.is_valid():
familymembers.instance = self.object
familymembers.save()
return super(ProfileFamilyMemberCreate, self).form_valid(form)
私もhereから、JavaScriptコードを使用します。
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="{% static 'formset/jquery.formset.js' %}"></script>
<script type="text/javascript">
$('.formset_row').formset({
addText: 'add family member',
deleteText: 'remove',
prefix: 'familymember_set'
});
</script>
https://github.com/Chive/django-multiuploadを試しましたか? –
@MHassanまだ、トピックが難しいので教えてください、このツールで私はformsetとマルチアップロードを作成できますか? – Kai
複数のファイルをアップロードするためのパッケージです。 1つのファイルフィールドを持つように、そのファイルフィールドで複数のファイルを選択することができ、選択したすべてのファイルはフォームを保存すると保存されます。私はずっと前に複数のファイルをアップロードするためにそれを使用しました。 –