旧值输入django模型形式

qfe3c7zg  于 2023-03-04  发布在  Go
关注(0)|答案(1)|浏览(131)

在Laravel中,我们使用old('field_name')来显示之前的输入值。在Django表单模型中我该怎么做呢?我的意思是如果验证不成功,输入值将被删除。我希望它之前的值被保留,而不需要输入。

class AddMenuForm(forms.ModelForm):
    def __init__(self,*args,**kwargs):
        x=super(AddMenuForm, self).__init__(*args, **kwargs)
        return x
    class Meta:
        model=Menu
        fields="__all__"

        widgets = {
            'title': forms.TextInput(attrs={
                'class': 'form-control',
                'id':'inputname',
                'placeholder':  "نام آیتم"
            }),
            'url': forms.TextInput(attrs={
                'class': 'form-control',
                'id': 'inputurl',
                'placeholder': " mr-keshi.ir /"
            }),

查看次数:

class addMenu(FormView):
        template_name = 'Menu/addMenu.html'
        success_url = reverse_lazy('Menu')
        form_class = AddMenuForm
    
        def get_context_data(self, **kwargs):
            if (self.kwargs['menu'] not in Menu.placeMenu):
                # Todo: send error message
                pass
            data = super(addMenu, self).get_context_data(**kwargs)
            data['places'] = Menu.placeMenu
            data['place'] = self.kwargs['menu']
            return data
    
        def form_valid(self, form):
            print("form valid")
            menu = self.kwargs.get('menu')
            if (menu in Menu.placeMenu):
                form.save()
            else:
                pass
    
                # Todo: send error message
            # Todo:send success message
            return True
        def form_invalid(self, form):
            print("form is not valid")
            return super(addMenu, self).form_invalid(form)
ru9i0ody

ru9i0ody1#

据我所知,您的意思是当提交无效表单时,字段字段应该在输入值中保持相同的无效值。
您没有在问题中添加所有相关文件。

from django.shortcuts import render
from .forms import YourForm

def example(request):
    form = YourForm()
    return render(request, "example.html", {"form": form})

相关问题