如何保存此表格?

问题描述 投票:0回答:1

我尝试过如何保存此代码。它显示了模板中的表单,但是当表单填写并提交数据没有保存到数据库时,这是我的观点。py

def create_tables(request):
    restaurant = Restaurant.objects.get(user=request.user)
    print(restaurant)
    form = TablesForm(request.POST or None)
    if form.is_valid():
        user = form.save(commit=False)
        user.refresh_from_db()
        user.restaurant = restaurant
        user.name = form.cleaned_data.get('name')
        user.time = form.cleaned_data.get('time')
        user.save()
        return redirect('/')

    args = {
        'table': restaurant,
        'form': form
    }
    return render(request, 'main/tt.html', args)

这也是我的forms.py

class TablesForm(forms.ModelForm):
    name = forms.CharField(max_length=250, label="Table Name")
    time = forms.ModelChoiceField(queryset=Time.objects.all())

    class Meta:
        model = Table
        fields = [
            'name',
            'time',
        ]

所以请帮我。

django forms view
1个回答
1
投票

在views.py中,删除instanceuser.refresh_from_db并更改为此

 form = TablesForm(request.POST or None)
    if form.is_valid():
        user = form.save(commit=False)
        user.restaurant = restaurant
        user.name = form.cleaned_data.get('name')
        user.time = form.cleaned_data.get('time')
        user.save()

我希望这会有所帮助。


0
投票
 form = TablesForm(request.POST or None, instance=request.user)
 if form.is_valid():
        restaurant.name = form.cleaned_data.get('name')
        restaurant.time = form.cleaned_data.get('time')
        restaurant.save()
        return redirect('/')
© www.soinside.com 2019 - 2024. All rights reserved.