我已经开始了一个django项目,将用户模型从AbstractUser扩展到我的CustomUser模型,这些模型与其他模型有外键关系。当我尝试使用www.example.com创建超级用户时manage.py,它没有创建超级用户。它显示了一个错误--〉django.db.utils.IntegrityError:(1048,“列'cid_id'不能为空”)。
任何帮助都将不胜感激
博客/models.py
from django.db import models
from django.utils import timezone
from django.contrib.auth import get_user_model
from ckeditor.fields import RichTextField
# Create your models here.
class Category(models.Model):
cid = models.AutoField(primary_key=True)
category_name = models.CharField(max_length=100)
def __str__(self):
return self.category_name
class Post(models.Model):
aid = models.AutoField(primary_key=True)
image = models.ImageField(default='blog-default.png', upload_to='images/')
title = models.CharField(max_length=200)
# content = models.TextField()
content = RichTextField()
created = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
cid = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='specialization')
approved = models.BooleanField('Approved', default=False)
like = models.ManyToManyField(get_user_model(), related_name='likes')
def __str__(self):
return self.title
用户/model.py
from django.db import models
from blog.models import Category
from django.contrib.auth.models import AbstractUser
# Create your models here.
class CustomUser(AbstractUser):
cid = models.ForeignKey(Category, on_delete=models.CASCADE)
profile_pic = models.ImageField(default='default_person.jpg', upload_to='profile_pics')
类别模型中的cid是Post和CustomUser模型中的外键。但是当我尝试创建超级用户时,它显示了我上面提到的错误。cid不能为空,因为当用户注册帐户时,他必须在注册表单中选择类别。但是作为超级用户,他不必使用注册表单注册帐户。那么我必须如何解决这个问题呢?
1条答案
按热度按时间11dmarpk1#
你可以给予你的
cid
成为null
的能力:为了让普通用户仍然使用
cid
字段required
,您可以尝试调整您的form
:否则,如果您使用的是纯html字段,请将
required
添加到您的input
。