【问题标题】:Django: CSS file won't updateDjango:CSS文件不会更新
【发布时间】:2017-05-04 05:46:45
【问题描述】:

我在更改 Django 表单的 CSS 时遇到了一些问题。这是我的代码 (模板):

<form method="post" action="."  id="signup">
    <div class="container">
      {% csrf_token %}
      {{ form.as_p }}
      <button type="submit" value="{% trans 'Submit' %}">Join</button>
    </div>
</form>

型号:

class ExRegistrationForm(RegistrationForm):
    age = forms.IntegerField()
    location = forms.CharField()
    phone = forms.CharField()

型号:

class ExUserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    age = models.PositiveSmallIntegerField(default = 19)
    location = models.CharField(max_length=2, default = "location")
    phone = models.CharField(max_length=15, default = "phone number")

    def __unicode__(self):
        return self.user


def user_registered_callback(sender, user, request, **kwargs):
    profile = ExUserProfile(user = user)
    profile.age = request.POST["age"]
    profile.location = request.POST["location"]
    profile.phone = request.POST["phone"]
    profile.save()

CSS:

.container input[type=text], .container input[type=password], .container input[type=email], .container input[type=number] {
  width: 100%;
  padding: 0.3em 0.5em;
  margin: 0.3em 0;
  font-size: 1.5em;
  text-align: center;
  display: inline-block;
  border: 0.1em solid #ccc;
  box-sizing: border-box;
  border-radius: 1em;
}

结果:

我的电子邮件和号码字段的样式没有更新,我认为这个问题可能与 Django 表单自动生成字段并做了一些奇怪的事情有关,但从检查来看,它表明这些字段具有正常的名称和输入类型。所以除了 CSS 没有更新之外,没有什么不寻常的。

我做错了什么?

【问题讨论】:

  • 你为什么不看浏览器开发工具,或者只是查看源代码,看看?
  • @DanielRoseman 问题的标题有点令人困惑,我将对其进行编辑。问题是,为什么没有实现这两种输入类型的 css ?我不知道问题是什么,我什至尝试为字段的 id 创建 CSS,例如 django form 将电子邮件的 id 设置为“id_email”,我为该 id 创建了一个特定的 css,但它仍然没有改变任何东西。

标签: html css django django-forms


【解决方案1】:

问题与我的浏览器缓存了我的旧 CSS 文件有关,因此不会显示任何更新。我很难解决这个问题,因为我并没有真正理解这个问题。

解决方案很简单:

Ctrl + Shift + Del

在 Chrome 中,您可以使用上述命令删除缓存,从而允许加载新的静态文件。

感谢大家的帮助。

【讨论】:

    【解决方案2】:

    你确定你的 CSS 选择器是正确的吗?转到检查元素,选择您的元素并单击复制选择器。这将使您深入了解输入元素的 Css 选择器。

    【讨论】:

    • 我使用了谷歌浏览器的检查,我可以看到正在应用什么以及在哪里,我可以读取 ID 和输入类型等。检查密码输入,它清楚地显示了正在使用的 css,但是css .container input[type=email]、.container input[type=number] 中缺少这两个标签。这意味着我的css文件还没有完全实现??或者由于某种原因排除了定义数字和电子邮件输入字段的这两个标签..
    【解决方案3】:

    您需要在 css 选择器中使用引号:例如输入[type="text"]

    【讨论】:

    • 我不认为你这样做,
    【解决方案4】:

    当 Debug 为 False 时,Django 不会提供静态内容(即 CSS 更改)。

    确保 Debug=True 在您的 settings.py 文件中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多