I have a form that includes an inline formset and I am having trouble displaying the videos in the template that were uploaded from the form. What would I add to the html line in the template as the source so that the video uploads are displayed? Thanks.
models.py:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
first_name = models.CharField(max_length=100, blank=True)
last_name = models.CharField(max_length=100, blank=True)
bio = models.TextField(max_length=150, null=True)
phone_number = models.CharField(max_length=50, null=True, blank=True)
def __str__(self):
return self.user.username
class MultipleFileUpload(models.Model):
file_uploads = models.ForeignKey(Profile, on_delete=models.CASCADE)
video = models.FileField(null=True, blank=True, upload_to='videos')
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def update_profile_signal(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
forms.py:
class EditProfile(forms.ModelForm):
class Meta:
model = Profile
fields = ['bio', 'phone_number']
class ProfileUpdateFormset(forms.ModelForm):
class Meta:
model = MultipleFileUpload
fields = ['video']
views.py:
def edit(request, id):
all_objects = get_object_or_404(Profile, id=id)
ProfileFormset = inlineformset_factory(Profile, MultipleFileUpload, fields=('video',), can_order=False, can_delete=True, extra=1)
if request.method == 'POST':
form1 = EditProfile(request.POST or None, instance=all_objects)
formset = ProfileFormset(request.POST, request.FILES, instance=all_objects)
if form1.is_valid() and formset.is_valid():
form1.save()
formset.save()
return HttpResponseRedirect(".")
form1 = EditProfile(instance=all_objects)
formset = ProfileFormset(instance=all_objects)
context = {
'form1': form1,
'formset': formset,
}
return render(request, 'accounts/edit.html', context)
html:
<video width="350" height="200" source src="{{ user.profile.file_uploads.video.url }}" controls></video></p>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…