Я установил null = true и blank = true, но все равно получаю "django.db.utils.IntegrityError: (1048, "Column 'massenger_name' cannot be null")".
я пытаюсь запустить свою страницу, но получаю эту ошибку "django.db.utils.IntegrityError: (1048, "Column 'massenger_name' cannot be null")"
и я делаю миграцию и снова имгрирую, но все равно у меня та же проблема
и моя база данных - mysql
это мой models.py
from django.db import models
# Create your models here.
class Name(models.Model):
massenger_name = models.CharField(max_length=255,null=True,blank=True)
action_time = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.massenger_name)
и это мой views.py
from django.shortcuts import render
from .models import Name
from django.shortcuts import redirect
# Create your views here.
def Home(request):
name_input = request.POST.get('user_name')
name_in_model = Name(massenger_name=name_input)
name_in_model.save()
return render(request , 'index.html')
и вот мой index.html
<!DOCTYPE html>
<html lang="en" dir="rtl">
<head>
<meta charset="utf-8">
<title></title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor" crossorigin="anonymous">
{% load static %}
<link rel="stylesheet" href="{% static 'CSS/style.css' %}">
</head>
<body>
<div id="form">
<form class="row" method="POST">
{% csrf_token %}
<div class="">
<input type="textarea" class="form-control" placeholder="أكتب أسمك (مثلا/أخوكم عبدالله العتيبي)" id="text_name" name="user_name" required>
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-3" id="button">حمل الصورة</button>
</div>
</form>
</div>
</body>
</html>
и этот мой set.py
и спасибо вам большое
Поскольку вы удалили свои миграции, проблема, должно быть, в том, что Django потерял представление о том, какие ограничения есть в ваших таблицах. Вам следует поискать способ удалить это ограничение NOT NULL непосредственно из базы данных. Возможно, попробуйте this
Это происходит потому, что у вас уже есть некоторые данные модели в базе данных, поэтому вам нужно сначала удалить эти данные.
Вы можете просто удалить все объекты в таблице из оболочки django shell:
перейдите в командную строку
1. python manage.py shell
2. from main.models import Name
3. Name.objects.all().delete()
(main being the app name here)
Это позволит удалить все объекты в таблице Tutorial, а затем сделать миграции и мигрировать, и все должно работать нормально.
или если это все еще не работает, вы можете попробовать следующие подходы:
1. delete the migrations file (folder) of the app and makemigrations and migrate again.
2. change the database of your project (but you can loss all of the site data by this.)