基于 Djando 类的视图 InlineFormSet_Factory 不保存额外的字段

问题描述

我需要一个支持 我正在尝试使用 inlineformset_fatory 它在模板中呈现并且(发布)表单被提交并保存......但表单集中的字段未保存

Forms.py

def updateFile():
    global allCustom;
    with open("CustomInfo.txt","w") as OutFile:
        for c in allCustom:
            OutFile.write(f"\nName:{c.name}\n")
            OutFile.write(f"Birth Date:{c.date}\n")
            OutFile.write(f"Address:{c.address}\n")
            OutFile.write(f"HKID:{c.hkid}\n")
            OutFile.write(f"Account value:{c.acc}\n")

Models.py

ImageFormSet = forms.modelformset_factory(ExtraPostimages,fields=('extra_images_image',),extra=3)

Views.py

class Post(models.Model):
    title = models.CharField(max_length=150)
    slug = models.SlugField(max_length=150,null=True,blank=True)
    content = models.TextField()

class ExtraPostimages(models.Model):
    extra_images_post = models.ForeignKey(Post,on_delete=models.CASCADE,related_name='extra_post_images')
    extra_images_image = models.ImageField(upload_to=post_images_upload,blank=True)

Templates.html

class PostCreateView(LoginrequiredMixin,View):
    template_name = "blog/Post_Create.html"
    form_class = PostCreateForm

    def get(self,request,*args,**kwargs):
        Image_FormSet = ImageFormSet()

        return render(request,self.template_name,{
            "form": self.form_class,"ExtraFormSet": Image_FormSet,})

    def post(self,**kwargs):
        ExtraFormSet = ImageFormSet(self.request.POST or None,self.request.FILES or None)
        form = self.form_class(request.POST,request.FILES)
        if form.is_valid() and ExtraFormSet.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.save()
            form.save_m2m()

            for f in ExtraFormSet:
                try:
                    photos = ExtraPostimages(post=post,extra_images_image=f.clean_data['extra_images_image'])
                    photos.save()
                except Exception as e:
                    break

            messages.success(request,"Your post has been saved successfully.")
            return redirect(reverse("detail-post",kwargs={"slug": post.slug}))

        else:
            ExtraFormSet = ImageFormSet(queryset=ExtraPostimages.objects.none())
            form = PostCreateForm
            messages.error(
                request,"An error occurred when saving your post.Please try again")
        return render(request,{
            "form": form,"ExtraFormSet": ExtraFormSet,})

谁能帮忙,

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)