私の入力テキストフィールドは、すっきりした形でレンダリングされています。すべての例で、ほとんどのテキストフィールドは1文字の高さしか持っていません(これは私が望むものです)。しかし、私の入力フィールドははるかに高いです。 私はbootstrap3を使用しています。 (添付画像参照)クリスピーフォームのテキスト入力の高さ(Django 1.9)
私の基本テンプレートには、私が見る限り特別なものはありません。ここでの主な部分だ:
<body class="skin-black">
<!-- header logo: style can be found in header.less -->
<header class="header">
<a href="/" class="logo">
<img src="{% static 'portal/logo.png' %}" alt="Logo"/>
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top" role="navigation">
<!-- Sidebar toggle button-->
<a href="#" class="navbar-btn sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="navbar-right">
{% if user.is_authenticated %}
<a href="/logout"><span class="glyphicon glyphicon-log-out"></span> Logout {{ user.username }} </a>
{% else %}
<a href="/registration/login"><span class="glyphicon glyphicon-log-in"></span> Login</a>
{% endif %}
</div>
</nav>
</header>
<div class="wrapper row-offcanvas row-offcanvas-left">
<!-- Left side column. contains the logo and sidebar -->
<aside class="left-side sidebar-offcanvas">
<!-- sidebar: style can be found in sidebar.less -->
<section class="sidebar">
<!-- Sidebar user panel -->
<div class="user-panel"></div>
</section>
<!-- sidebar menu: : style can be found in sidebar.less -->
{% if user.is_authenticated %}
<div id="MainMenu">
<div class="list-group panel">
{% for group in user.groups.all %}
{% if not group.name == 'client' %}
<a href="/" class="list-group-item">Home</a>
<a href="/modules" class="list-group-item">Modules</a>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
</aside>
<aside class="right-side">
<section class="content">
<div class="wrapper">
<div class="row">
{% block content %}{% endblock %}
</div>
</div>
</section>
<div class="footer-main navbar-default navbar-fixed-bottom" id="footer">
Copyright © NOZHUP, 2016
</div>
</aside><!-- /.right-side -->
</div>
Forms.py:
from django import forms
from django.core.urlresolvers import reverse_lazy
from django.contrib.auth.forms import AuthenticationForm
from .models import Module, Category, Case
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, Field, Fieldset, ButtonHolder
from crispy_forms.bootstrap import (
PrependedText, PrependedAppendedText, FormActions)
class ModuleForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ModuleForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_method = 'POST'
#self.helper.form_class = 'form-horizontal'
#self.helper.label_class = 'col-md-2'
#self.helper.field_class = 'col-md-8'
self.helper.layout = Layout(
Fieldset(
'Enter module name, version and description',
'name',
'version',
'description'
),
ButtonHolder(
Submit('submit', 'Submit', css_class='button white')
)
)
class Meta:
model = Module
fields=('name', 'version', 'description')
class CategoryForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(CategoryForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_method = 'POST'
self.helper.layout.append(Submit('save', 'save'))
class Meta:
model = Category
fields=('name',)
models.py:
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class Module(models.Model):
name = models.TextField(null=True)
version = models.TextField(null=True)
description = models.TextField(null=True)
def __unicode__(self): # __unicode__ on Python 2
return self.name
class Category(models.Model):
name = models.TextField(null=True)
module = models.ForeignKey(Module, on_delete=models.CASCADE)
def __unicode__(self): # __unicode__ on Python 2
return self.name
class Case(models.Model):
name = models.TextField(null=True)
action = models.TextField(null=True)
desiredresult = models.TextField(null=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
def __unicode__(self): # __unicode__ on Python 2
return self.name
class Suite(models.Model):
name = models.TextField(null=True)
description = models.TextField(null=True)
cases = models.ManyToManyField(Case)
untested = models.IntegerField(default=0)
passed = models.IntegerField(default=0)
failed = models.IntegerField(default=0)
def __unicode__(self): # __unicode__ on Python 2
return self.name
module_edit.html:
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<h4>Modules</h4>
{% crispy form %}
{% endblock %}
フォームクラスのコードを投稿してください。 – solarissmoke
'forms.py'クラスと' models.py'クラスを投稿する必要があります。間違ったウィジェットを使用してコンポーネントをレンダリングしている可能性があります。また、クリスピーフォームを使用している場合は、投稿したテンプレートに '{%load crispy_forms_tags%}'が見つかりません。つまり、レンダリングに鮮明なフォームを使用していないことを意味します。 – Cheng
@Cheng:私が見ることができるように、サブテンプレートでタグを使用しています... – zappfinger