当Django MaterializeCssForm中的field.html中的变量不存在时,Django MaterializeCssForm出现问题

2024-10-03 02:34:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django的新手。无论何时呈现表单,都会出现“异常:VariableDoesNotExist 在“”中查找键[required\u css\u class]失败。我不理解这个错误,如果有人解释或告诉我我做错了什么,我将不胜感激

先谢谢你

这是我的看法

def considerations(request):        

    if request.method == "POST":
        form = B2bConsideration(request.POST)
        v = form.is_valid() 
        if form.is_valid():
            instance = form.save(commit=True)
            #adding date to instance from request not in table but a good idea
            #instance.date = request.date
            instance.save()
            return HttpResponseRedirect(reverse('b2b:TypeOfTitle'))  
        else:
            return HttpResponse(form.errors)
    else:
        form = B2bConsideration()
        return render(request, 'b2b/B2B_notes.html',{'form':form} )

这是我的模型

class B2bConsideration(ModelForm):
CHOICES = [('yes_title_under_name', 'yes'),('No_title_under_name','no'),]
under_name_title = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect())
class Meta:
    model = Consideration
    fields = ['under_name_title','salvage_title','is_title_paidoff']

这是我的模型

under_Name_choices = [('yes_title_under_name', 'yes'),('No_title_under_name','no'),]
salvage_title_choices =[('yes_salvage_title','yes'),('no_salvage_title','no'),]
is_title_paidoff_choices = [('yes_title_paidoff', 'yes'),('no_title_paidoff','no'),]

class Consideration (models.Model):
    under_name_title = models.CharField(max_length=21, choices=under_Name_choices)
    salvage_title = models.CharField(max_length=18, choices=salvage_title_choices)
    is_title_paidoff = models.CharField(max_length=21, choices=is_title_paidoff_choices)

这里是错误指向的地方。这就是它所说的“异常已发生:variabledesnotexist 在“”中查找键[required\u css\u class]失败

 <label class="control-label {{ classes.label }} {% if field.field.required %}{{ form.required_css_class }}{% endif %}">{{ field.label }}</label>

这是我的HTML

{% load static %}
  {% load materializecss %}
<!DOCTYPE HTML>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Titlemax B2B</title>
    {% block css %}
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/css/materialize.min.css">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    {% endblock css %}
    {% block javascript %}
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/js/materialize.min.js"></script>
    {% endblock javascript %}



     <script src="{% static 'B2B_index.js' %}"></script> 
    <link rel="stylesheet" href="{% static 'B2B_index.css' %}">

</head>

{{ form.under_name_title.0}}
{{ form.under_name_title.1}}

{{ form|materializecss:'m6' }}

Tags: nonameformtitleisrequestscriptcss
1条回答
网友
1楼 · 发布于 2024-10-03 02:34:54

我认为问题在于,通过将变量“form”传递给模板,您正在覆盖变量“form”:

return render(request, 'b2b/B2B_notes.html',{'form':form} )

尝试将变量重命名为“form”以外的其他名称,例如:

return render(request, 'b2b/B2B_notes.html',{'my-form':form} )

确保在调用{{form}的最后3行中重命名html中的变量

相关问题 更多 >