Как стилизовать форму модели в django с помощью CSS?
Я использовал простые формы в Django с тех пор, как начал работать с python, и теперь я перешел на модельные формы, сейчас я задаюсь вопросом, как стилизовать форму. Я пытался использовать код виджетов, но он ведет себя немного странно, Если я правильно понимаю, виджеты предназначены для стилизации самой формы (например, поля ввода), а я могу использовать обычные html/css стилизации для любых других элементов, которые у меня есть? Мой желаемый эффект заключается в том, чтобы форма была отцентрирована по центру экрана. Правильно ли это? Вот мой код на случай ошибок:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% load static %}
<link rel="stylesheet" href="{% static 'css/tripadd.css' %}">
<title>Document</title>
</head>
<body>
<!-- <div class="form-container">
<h4>Add a Trip</h4>
<form action="/createTrip" method="post" class="reg-form">
{% csrf_token %}
<p><input class="field" type="text" name="city" placeholder="City" id=""></p>
<p><input class="field" type="text" name="country" placeholder="Country" id=""></p>
<p><textarea name="description" id="" cols="30" rows="10"></textarea></p>
<p><input class="field" type="file" name="photo" placeholder="Photo" id=""></p>
<input class="form-btn" type="submit" value="submit">
</form>
</div> -->
{% block content %}
<div class="trip-form">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.as_p}}
<button type="submit">submit</button>
</form>
</div>
{% endblock %}
</body>
</html>
@import url('https://fonts.googleapis.com/css?family=Poppins:200,300,400,500,600,700,800,900&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
body{
display: flex;
justify-content: center;
align-items: center;
}
.form-control{
width: 500px;
height: 500px;
border: 2px solid black;
}
// form should be centered in middle of page
Вы правы в том, что виджет предоставляет вам возможность стилизовать вашу форму, но он будет стилизовать только поле для вас, а не метку, и любой класс, который вы упоминаете в виджете, должен быть доступен в таблице stlyesheet. Вы можете проверить ссылку ниже, она предоставляет простой пример того, как вы можете стилизовать вашу форму.
а если вы хотите полностью стилизовать форму с помощью меток и того, как она должна быть структурирована, вам придется зациклиться на форме. Ниже я привел простой код, который иллюстрирует, как вы можете структурировать вашу форму, используя django forms
<style>
.h-100{
min-height:100vh;
}
</style>
<div class="w-100 d-flex justiy-content-center align-items-center h-100" >
<form method="POST" class="row" enctype="multipart/form-data">
{% csrf_token %}
{% for field in form %}
<div class="col-6 text-start"> {{field.label}} </div>
<div class="col-6"> {{field}} </div>
{% endfor %}
<button type="submit">submit</button>
</form>
Надеюсь, это поможет вам в решении вашей проблемы :)