Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我无法更新Django中的项目_Django_Django Models_Django Views_Django Forms_Django Templates - Fatal编程技术网

我无法更新Django中的项目

我无法更新Django中的项目,django,django-models,django-views,django-forms,django-templates,Django,Django Models,Django Views,Django Forms,Django Templates,my AppApplication的个人用户在创建条形图后立即创建条形图信息。我想让他们能够更新他们的酒吧信息,但它不断返回错误“选择一个有效的选择。该选择不是可用的选择之一。”我不确定这意味着什么,这种错误对我来说很奇怪 views.py def UpdateUserBar(request): user = request.user.id user_email = request.user.email bar = Bar.objects.get(user_id=user

my AppApplication的个人用户在创建条形图后立即创建条形图信息。我想让他们能够更新他们的酒吧信息,但它不断返回错误“选择一个有效的选择。该选择不是可用的选择之一。”我不确定这意味着什么,这种错误对我来说很奇怪

views.py

def UpdateUserBar(request):
    user = request.user.id
    user_email = request.user.email
    bar = Bar.objects.get(user_id=user)
    form = UpdateBar(request.FILES, instance=bar)
    if request.method == 'POST':
        form = UpdateBar(request.POST, request.FILES, instance=bar)
        if form.is_valid():
            form.save()
            return redirect('/updatebar')
            messages.success(request, 'Bar Information Updated successfully')
        # else:
        #     return redirect('/dashboard')
        #     messages.error(request, 'Only Post method is accepted')
        else:
            try:
                pass
            except Exception as e:
                messages.error(request, "Unknown error"+ str(e))
                return redirect(request.path)
    else:
        form = UpdateBar(instance=bar)
    context = {"form":form, "user_email":user_email, "bar":bar}
    return render(request, "dashboard/super/landlord/update_bar.html", context)
注意:如果我使用第二个已注释的else块代码,它只会将我重定向到仪表板,不会显示错误,因此我无法知道错误原因

models.py

class Bar(models.Model):

    bar_status = (
            ("active", "active"),
            ("closed", "closed"),
            ("pending", "pending"),
        )

    user_id = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=100)
    opening_time = models.TimeField()
    closing_time = models.TimeField()
    status = models.CharField(choices=bar_status, default="pending", max_length=14)
    image = models.ImageField(upload_to='images/bars', default='images/bars/default.jpg')

    def __str__(self):
        return self.name
forms.py

class UpdateBar(ModelForm):
    class Meta:
        model = Bar
        fields = '__all__'
updatebar.html

<form class="form-horizontal" role="form" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <div class="form-group" style="display: none;">
        <label class="col-md-2 control-label">{{ form.name.label }}:</label>
        <div class="col-md-10">
            <input type="text" id="id_name" name="name" class="form-control" value="{{user.name}}">
        </div>
    </div>

    <div class="form-group" style="display: none;">
        <label class="col-md-2 control-label">{{ form.user_id.label }}:</label>
        <div class="col-md-10">
            <input id="id_user_id" name="user_id" type="text" class="form-control" value="{{user_email}}">
        </div>
    </div>

    <div class="form-group">
        <label class="col-md-2 control-label">{{ form.address.label }}</label>
        <div class="col-md-10">
            {{ form.address | attr:"class:form-control"  }}
        </div>
    </div>

    <div class="form-group">
        <label class="col-md-2 control-label">{{ form.status.label }}</label>
        <div class="col-md-10">
            {{ form.status | attr:"class:form-control"  }}
        </div>
    </div>

    <div class="form-group">
        <label class="col-md-2 control-label">{{ form.image.label }}</label>
        <div class="col-md-10">
            {{ form.image | attr:"class:form-control"  }}
        </div>
    </div>

    <div class="form-group">
        <label class="col-md-2 control-label">{{ form.opening_time.label }}</label>
        <div class="col-md-10">
            {{ form.opening_time | attr:"class:form-control"  }}
        </div>
    </div>
    
    <div class="form-group">
        <label class="col-md-2 control-label">{{ form.closing_time.label }}</label>
        <div class="col-md-10">
            {{ form.closing_time | attr:"class:form-control"   }}
        </div>
    </div>
            <div class="form-group">
                <div class="col-md-10">
                    <center><button class="btn btn-primary" type="submit">Update Bar Info</button></center>
                </div>
            </div>
        </form>

{%csrf_令牌%}
{{form.name.label}}:
{{form.user_id.label}}:
{{form.address.label}
{{form.address}attr:“类:表单控件”}
{{form.status.label}
{{form.status}attr:“类:表单控件”}
{{form.image.label}
{form.image | attr:“类:表单控件”}
{{form.opening_time.label}
{{form.opening_time}attr:“class:form control”}
{{form.closing_time.label}
{form.closing|time|attr:“class:form control”}
更新酒吧信息
“选择一个有效选项。该选项不是可用选项之一。”通常意味着具有
选项的字段未与可用选项之一一起正确提交。在本例中,这意味着
状态有问题,因为这是唯一使用
选项的字段


请注意,在
类栏中
定义了两次
状态
;第二次将覆盖第一次。我不确定这是否与问题有关,但总有一天会产生问题。

哇,你想得真周到。我已经更新了问题。但我仍然面临同样的错误。@coderboy您确实需要将此代码减少到产生错误的最小值。例如,您有一个冗余的
try:pass;除了…
某个地方。看见