Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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
Python 如何用css编辑{{form | crispy}}}并移动表单?_Python_Django - Fatal编程技术网

Python 如何用css编辑{{form | crispy}}}并移动表单?

Python 如何用css编辑{{form | crispy}}}并移动表单?,python,django,Python,Django,我一直在使用{{form | crispy}},但现在我已经决定设计和移动内容,我正在尝试编辑我的表单。 我只是 {% block content %} <form id="post_form" method="post" action="/add_post/" enctype="multipart/form-data"> {% csrf_token %} {{ form|crispy }} <!--{% for tag in person.tags.all %

我一直在使用{{form | crispy}},但现在我已经决定设计和移动内容,我正在尝试编辑我的表单。 我只是

{% block content %}
<form id="post_form" method="post" action="/add_post/" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form|crispy }}
<!--{% for tag in person.tags.all %}{{ tag.word }} {% endfor %}-->

     <input type="submit" name="submit" value="Create Post">
    </form>
    {% endblock %}
在models.py中

class Post(models.Model):
    category = models.ForeignKey(Category)
    pub_date = models.DateTimeField(auto_now_add = True)
    url = models.URLField(max_length=250, blank=True, null=True)
    video = EmbedVideoField(verbose_name='My video',blank=True, null=True)  

    title = models.CharField(max_length = 100)
    moderator = models.ForeignKey(User)
    views = models.IntegerField(default=0)
    slug = models.CharField(max_length=100, unique=True)
    content = RichTextUploadingField(config_name='default')
    rank_score = models.FloatField(default= 1)
    image = models.ImageField(upload_to='images',blank=True, null=True)

简而言之,我有:类别,网址,视频链接,标题,我表格中的内容。我正试着把这些表格搬来搬去。我如何实现这个目标?先谢谢你

除了可以一起渲染整个表单外,还可以单独渲染表单的每个元素。我建议通读这部分内容。 例如,您可以执行以下操作:

{{ form.non_field_errors }}
<div class="fieldWrapper">
    {{ form.subject.errors }}
    <label for="{{ form.subject.id_for_label }}">Email subject:</label>
    {{ form.subject }}
</div>
<div class="fieldWrapper">
    {{ form.message.errors }}
    <label for="{{ form.message.id_for_label }}">Your message:</label>
    {{ form.message }}
</div>
def __init__(self, *args, **kwargs):
    super(PostForm, self).__init__(*args, **kwargs)
    for field_name in self.fields:
        field = self.fields[field_name]
        field.widget.attrs.update({'class': 'form-control'})
这会将引导类
表单控件
分配给表单中的每个字段。当然,您也可以使用以下方法设置单个字段的样式:

self.fields['title'].widget.attrs.update({'placeholder': 'This is a title'})

对于造型部分,可能有更好的解决方案。尤其是对于较大的表单,这可能会变得有点笨重。但是对于我现在正在处理的较小的表单,它工作得很好。

除了可以一起渲染整个表单之外,还可以单独渲染表单的每个元素。我建议通读这部分内容。 例如,您可以执行以下操作:

{{ form.non_field_errors }}
<div class="fieldWrapper">
    {{ form.subject.errors }}
    <label for="{{ form.subject.id_for_label }}">Email subject:</label>
    {{ form.subject }}
</div>
<div class="fieldWrapper">
    {{ form.message.errors }}
    <label for="{{ form.message.id_for_label }}">Your message:</label>
    {{ form.message }}
</div>
def __init__(self, *args, **kwargs):
    super(PostForm, self).__init__(*args, **kwargs)
    for field_name in self.fields:
        field = self.fields[field_name]
        field.widget.attrs.update({'class': 'form-control'})
这会将引导类
表单控件
分配给表单中的每个字段。当然,您也可以使用以下方法设置单个字段的样式:

self.fields['title'].widget.attrs.update({'placeholder': 'This is a title'})
对于造型部分,可能有更好的解决方案。尤其是对于较大的表单,这可能会变得有点笨重。但是对于我现在处理的较小的表单,它工作得很好