编程语言
首页 > 编程语言> > python-从基本抽象类Django的子类中删除字段

python-从基本抽象类Django的子类中删除字段

作者:互联网

我正在创建一个需要评论系统的应用程序.我决定使用Django的注释应用程序,但需要对其进行一些更改.首先,我不希望用户的电子邮件ID是必填项,其次,我需要一个带有注释的文件附件.

因此,我决定从BaseCommentAbstractModel继承子类.现在我需要覆盖user_email

user_email= models.EmailField(max_length=100, blank=True)

并添加另一个字段

file = models.FileField(upload_to='data/files')

我的代码应如下所示:

from django.db import models
from django.contrib.comments.models import  BaseCommentAbstractModel

class CommentWithFile(BaseCommentAbstractModel):
    '''This is a hack of the Comment model to remove email and add a filefield'''
    user_email = models.EmailField(max_length=100, blank=True)
    file = models.FileField(upload_to='data/files')

但这不起作用. user_email仍然是必需的.有任何想法吗?

解决方法:

您确定问题与模型有关吗? BaseCommentAbstractModel甚至都没有定义user_email,它仅在主Comment模型中-并且在任何情况下都被定义为blank = True.

我认为您更有可能需要提供自定义表单.主CommentDetailsForm不是模型窗体-它手动定义其字段,包括必填的电子邮件字段.听起来您也需要覆盖它.

标签:base-class,python,django
来源: https://codeday.me/bug/20191208/2093914.html